У меня есть сайт, который создает сеанс для тележек для покупок.
$_SESSION['cart']=array();
Кажется, что сервер автоматически убивает сессию после X-времени бездействия, я предполагаю, что это установлено в php.ini (но мой хост не предоставляет мне доступ, они просто позволяют мне сообщать им об изменениях, поэтому я не могу играть! :().
Есть ли лучший способ сохранить сеансы живыми, например, в течение 2 дней или для определенного количества минут / часов?
Вызовите session_set_cookie_params()
перед вызовом session_start()
в ваших скриптах:
$session_lifetime = 3600 * 24 * 2; // 2 days session_set_cookie_params ($session_lifetime); session_start(); // ...
Из документации :
session_set_cookie_params()
Установите параметры файла cookie, определенные в файле php.ini. Эффект этой функции сохраняется только в течение срока действия скрипта. Таким образом, вам нужно вызватьsession_set_cookie_params()
для каждого запроса и до вызоваsession_set_cookie_params()
.
Кроме того, вы можете обновить директиву session.cookie_lifetime
файла php.ini до 2 дней (в секундах).
установить cookie и изменить в вашем конфиге, что сеанс использует файлы cookie
session_start(); set_cookie("PHPSESSID", session_id(), time() + 3600 * 2);
это продолжится в течение 2 часов