2010-08-29 3 views
2

Я прочитал десятки решений для этого и попробовал почти каждый из них, но мои сеансы быстро заканчиваются. Я использую установку Debian и устанавливаю максимальную переменную в/usr/lib/php5/maxlifetime до 86400. Я также установил session.gc_maxlifetime = 86400 в php.ini. Я сделал cookie сессии действительным в течение одного часа, и каждый раз, когда я перезагружаю страницу, я обновляю ее еще на один час. Я попытался установить ini_set ("session.gc_maxlifetime", "86400"); в моем переднем контроллере. Однако ничего не помогает. Если я войду на свой сайт и подожду около 20 минут, то в следующий раз, когда я нажму ссылку на странице, я выйду из системы. Файл cookie сеанса по-прежнему действителен, и файл сеанса в/var/lib/php5 все еще существует. Я просто не понимаю. Следует также упомянуть, что я использую Parallels PLESK в системе, и он внес много изменений в стандартную установку Debian, но я не думаю, что это проблема. Кто угодно?Мои сеансы PHP не работают, даже если файлы сеанса неповреждены.

ответ

0

Возможно ли, что у вас есть что-то .htaccess, конфликтующее со всем остальным? И вы уверены, что не задаете это где-то еще в своем коде или каком-то специальном php.ini? Каждый раз, когда у меня такие проблемы, я наконец понял, что забыл ОДНО место.

1

Возможно, существует более одного загружаемого файла .ini и где тот, который вы делали с изменениями сеанса, переопределяется одним загруженным позже в цепочке. Выгрузите phpinfo(), где находится ваш код проверки/входа в систему и посмотрите, какие настройки сеанса. Часть выходного файла также будет представлять список загруженных файлов .ini.

0

Я не уверен, что это поможет, но убедитесь, что вы используете оба ob_start() & session_start();

ob_start(); 
session_start(); 

Это странно, решение может заключаться в реализации функции «Запомнить меня» с помощью печенья. Я знаю, что сеансы могут быть очень непостоянными, если вы входите в систему на другом компьютере или в том же компе, но в другом браузере, cookie может быть уничтожен.

Также является ли сеанс действительно разрушенным? Или создается новый сеанс?

0

php -i | grep session.cookie_lifetime (на консоли) или phpinfo() (в скрипте) проверьте свое изменение на параметр времени cookie?

Если вы используете Firefox, попробуйте установить панель инструментов веб-разработчиков и Firebug для проверки куки-файлов и сетевой активности. Это очень полезная комбинация для меня при исследовании проблем, в которых изменяется хэш-значение cookie сеанса.

Возможно также, что где-то в вашем коде или библиотеках у вас есть вызов session_set_cookie_params(), который перегружает ваше ожидаемое поведение. Вы можете проверить файлы cookie с указанным выше расширением, чтобы проверить их истечение.

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

  • Нет связанных вопросов^_^