[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сессия. Я сказал ты умрешь через 5 минут!
McLotos
Всем привет! =)
В общем ситуация такая, сервер устанавливает сессию ровно на 5 минут и при этом его не волнует что пользователь еще онлайн и даже ходит по ссылкам.
ini_set('session.save_path', __DIR__.'/sessions/');
session_save_path(__DIR__.'/sessions/');
ini_set('session.gc_maxlifetime',300);
ini_set('session.cookie_lifetime',300);
session_set_cookie_params(300);
session_start();


_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Игорь_Vasinsky
хз, возможно хостер имеет приоритетные настройки и тупо чистит папку сессий со своим интервалом.

а ты уверен, что это не папка по умолчанию ?

ini_set('session.save_path', __DIR__.'/sessions/');


попробуй другую.

вообще - код должен срабатывать.

300 - ну и у тебя в коде тож 5 минут.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
McLotos
Игорь_Vasinsky
Прикол в том что до вчерашнего дня (точнее до добавление этого кода) сессии вообще не умирали. т.е. я изо дня в день заходил под одной и той же сессией. А вчера я добавил это и настройки заработали только сегодня, теперь сессия умерает ровно через 5 минут тупо игнорируя активность пользователя. Так же не должно быть. сессия же должна обновлять таймер если пользователь еще на сайте и что-то делает

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Valick
ini_set('session.cookie_lifetime',300);
session_set_cookie_params(300);


сдаётся мне, что ты сам себе сделал харакири )
ты же удаляешь куку, пофиг что сессии ещё жить да жить, без куки сервер тебя не знает

_____________
Стимулятор ~yoomoney - 41001303250491
Kusss
а можно разжевать нюансы ?

это устанавливает время, и оно НЕ переопределяется при обновлении страницы ?
ini_set('session.cookie_lifetime',300);
ini_set('session.cookie_lifetime',300);

а это переопределяет ?
session_set_cookie_params(300);
killer8080
McLotos
дело в том что session_start() выставляет куки только один раз, если их не было до этого, рефрешить их нужно вручную, иначе браузер их убьёт по expire date.



Спустя 1 минута, 3 секунды killer8080 написал(а):
Цитата (Kusss @ 16.10.2015 - 09:41)
а можно разжевать нюансы ?

это устанавливает время, и оно НЕ переопределяется при обновлении страницы ?
ini_set('session.cookie_lifetime',300);
ini_set('session.cookie_lifetime',300);

а это переопределяет ?
session_set_cookie_params(300);

это одно и то же
McLotos
Цитата (killer8080 @ 16.10.2015 - 12:48)
иначе браузер их убьёт по expire date.

Так я всегда и думал что любое действие пользователя связанное с переходом по адресу или отправкой формы должно обновить ttl у сессии и куки, а получается что нифига она не обновляется, вот зашел ты 5 минут назад, до свидания, авторизуйся снова

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
killer8080
да, есть такое. нужно вручную куки рефрешить
session_start();
if (isset($_COOKIE[session_name()])) {
setcookie(
session_name(),
session_id(),
ini_get('session.cookie_lifetime') > 0 ? (time() + ini_get('session.cookie_lifetime')) : 0,
ini_get('session.cookie_path'),
ini_get('session.cookie_domain'),
ini_get('session.cookie_secure'),
ini_get('session.cookie_httponly')
);

}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.