Сессия не присутствует при перезапуске браузера - PullRequest
0 голосов
/ 26 марта 2009

Я вхожу в свою систему и устанавливаю cookie таким образом:

setcookie("hello",true,time()+3600);

Затем я смотрю в диспетчере файлов cookie Firefox и вижу, что мой файл cookie установлен.

Когда я перезагружаю свой браузер и перезагружаюсь, я вижу в менеджере печенья, что это cookie, но этот код:

if(isset($_COOKIE['hello'])){

            echo "yes"; exit;}

Я не вижу ничего, что перенаправляет меня в форму входа. Кто-нибудь знает, что происходит?

Ответы [ 2 ]

3 голосов
/ 26 марта 2009

Некоторые вещи попробовать:

  1. Explicity установите атрибут path для setcookie в /, чтобы файлы cookie были доступны во всем домене.
  2. Вместо проверки isset попробуйте выполнить print_r из $_COOKIE в другом пустом PHP-файле.
  3. value часть setcookie ожидает строку, а не логическое значение. Я представляю, как сейчас hello устанавливается на 1, хотя на самом деле это не имеет значения, переживет ли он перезапуск или нет, просто подумал, что укажу на это.
  4. Ваш браузер настроен на удаление файлов cookie при выходе? Например, в Firefox вы можете перейти в Сервис -> Параметры -> Конфиденциальность, и есть опция, которая говорит: «Всегда очищать мои личные данные при выходе из Firefox». Если у вас есть этот набор, все ваши куки будут удалены при закрытии браузера.
  5. Вы проверяли доступ к cookie из PHP до до перезапуска? Вы говорите, что можете видеть его в Cookie Manager до и после, но можете ли вы увидеть его в PHP до или после?
3 голосов
/ 26 марта 2009

Несмотря на то, что обычный файл cookie, например, файл cookie «Привет», выдержит перезапуск браузера, файл cookie сеанса не сохранится.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...