Проблемы с сессией PHP - PullRequest
       1

Проблемы с сессией PHP

0 голосов
/ 17 февраля 2011

У меня есть часть моего сайта, когда любой пользователь (не только вошедший в систему) может оценить что-либо в форме от 1 до 5. Форма и серверная часть для него работают отлично.

Я сделал так, чтобы при появлении формы POST он $_SESSION['rated']; равнялся единице. Тогда у меня есть немедленное перенаправление на страницу происхождения. На исходной странице, где находится исходная форма оценки, если $_SESSION['rated']; = 1, то форма невидима, но если она равна 0 (по умолчанию), то форма отображается.

Это сработало в самый первый раз, но с тех пор я не смог ни остановить сеанс, ни сбросить переменные каким-либо образом. Я даже попробовал другой браузер, очистив все куки, делая это:

session_start();
session_unset();
session_destroy();

Но на самом деле ничего не очищает сеанс, и моя форма все еще показывает невидимым, потому что $_SESSION['rated']; по-прежнему равен 1.

Что мне делать?

Ответы [ 4 ]

1 голос
/ 17 февраля 2011

вы написали if $_SESSION['rated']; = 1

проверьте свой код, если вы действительно используете = (оператор присваивания).если вы это сделаете, это виновник - для сравнения значений в php (и других c-подобных языках) используйте == (оператор сравнения)

0 голосов
/ 17 февраля 2011

попробуй:

session_destroy();
$_SESSION = array();
0 голосов
/ 17 февраля 2011

Сессия - это просто файл. Найдите, где ваша установка PHP хранит файл сеанса, и посмотрите на его содержимое между запросами. Содержимое является всего лишь сериализованной версией $ _SESSION и довольно легко читается. Если ваш 'rating = 1' все еще там после того, как вы сделали session_destroy / unset / etc ..., тогда что-то еще восстанавливает ваш сеанс до его сериализации и сохранения.

0 голосов
/ 17 февраля 2011

Различные варианты:

unset($_SESSION['rated']);  //Removes the 'rated' variable form $_SESSION

unset($_SESSION);           //Destroys everything inside $_SESSION

$_SESSION['rated'] = 0;     //This might be the best alternative for you
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...