2009-03-26 2 views
0

Я логин в моей системе и установить куки таким образом:Session нет при перезапуске браузера

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

Затем я смотрю в менеджере печенья из светлячок и увидеть, что мой куки установлен.

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

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

      echo "yes"; exit;} 

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

ответ

3

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

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

В то время как обычный файл cookie, такой как ваш 'hello' cookie, выдержит перезапуск браузера, cookie сеанса не будет.

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

Смежные вопросы