Иначе я наткнулся на, только для полноты: добавьте некоторую разметку HTML, которая не изменяет вывод между * и/.
/**
* *<b/>/
*/
По сравнению с решением для Escape HTML, это кажется чем-то вроде ужасного взлома, но это также приводит к правильному результату в выводе HTML.
Часы, дата и часовой пояс компьютера вашего клиента должны быть правильно установлены, чтобы истечение срока действия сессии работало. В противном случае преобразование времени будет неправильным, и, скорее всего, ваш файл cookie истечет в тот момент, когда он попадет в браузер клиента.
Существуют ли на сервере другие приложения PHP?
Предполагая, что вы используете стандартный файловый обработчик сеансов, PHP будет хранить все сеансы в одном месте (обычно / tmp).
Если у вас есть другой скрипт на сервере, использующий настройки session_gc_maxlifetime по умолчанию, он может поглощать ваши файлы сеанса.
Самый простой способ исправить - настроить PHP для хранения файлов сеанса для этого приложения в каком-то особом месте - таким образом другие приложения, запущенные на сервере, никогда случайно не «очистят» данные сеанса от этого приложения.
Попробуйте создать каталог, например / tmp / myAppPhpSessions (или любой другой), и добавить:
ini_set('session.save_path','/tmp/myAppPhpSessions');
ini_set('session.gc_maxlifetime', 864000);
в самом верху вашего файла начальной загрузки.
Убедитесь, что session.auto_start выключен в php.ini
Я думаю, вы используете ZF 1.8 или выше, так что вы можете поместить в файл config.ini
resources.session.save_path = APPLICATION_PATH "/../data/session" resources.session.remember_me_seconds = 864000
, и эти настройки будут загружены автоматически снова только в ZF 1.8 или выше, если вам не нужно было загружать эти конфигурации вручную надеюсь, это вам поможет :)
Попробуйте позвонить, запомни меня перед началом сеанса:
Zend_Session::rememberMe(864000);
Zend_Session::start();
В противном случае, я полагаю, будет использоваться значение по умолчанию Remember_me_seconds
. См. 49.4.4. RememberMe (integer $ seconds)
Кроме того, кто-нибудь знает, как я могу сделать это так, что сеанс никогда не истекает? Я пробовал установить второй на 0 и -1, но это вызывает ошибку.
Не думаю, что это возможно. Сеанс контролируется тем, существует ли cookie на компьютере пользователя. Эти файлы cookie могут быть удалены даже пользователями, если они очистят свой кеш. Я думаю, что лучшее, что вы можете сделать, это установить очень большое число. Скажем, 12 месяцев.