2013-06-30 3 views
0

У меня странная проблема с переменными $ _SESSION в PHP.

page1.php устанавливает

$_SESSION['progress'] = 1; 

В page2.php, у меня есть следующий код:

if ($_SESSION['progress'] === 1) { 
    $_SESSION['progress'] = 2; 
} 

Оба файла начинаются с session_start(). page1.php содержит ссылку, которая вызывает page2.php.

Если я регистрирую переменную $ _SESSION ['progress'], она не изменяется вообще. Зачем? Переменные $ _SESSION больше похожи на константы: после определения они не могут быть изменены снова? Есть ли подобные методы? Мне в основном нужно что-то, чтобы отслеживать прогресс нескольких пользователей. База данных не является вариантом.

Спасибо!

ответ

0

Может попробовать == вместо ===

if ($_SESSION['progress'] == 1) { 
    $_SESSION['progress'] = 2; 
} 
+0

, но почему они оба INT 1 – Vladimir

+0

Для меня === иногда глючит ... –

+0

gettype() возвращает "integer". Тем не менее он работает с == вместо === – Tim

0

Попробуйте сделать это:

if(isset($_SESSION["progress"])) 
{ 
    if($_SESSION["progress"] == 1) 
    { 
     $_SESSION["progress"] = 2 
    } 
} 
Смежные вопросы