Выставлено ограничение сессии по времени в 2 часа.
Как только она истекает, происходит автоматический разлогин юзера.
Однако есть люди, мягко говоря, медленно думающие и работающие, поэтому они с перерывами могут занудно долго набирать текст в форму и ткнуть "Далее" через 2,5 часа после начала сессии. И тогда вместо размещения их неэпического труда сайт выкидывает им окошко логина.
Груда кирпичей, повторный логин и снова набор текста.
Где то на сайте видел, что если долго сидишь и сессия разрегистрировалась, то выводится предупреждение об этом. Но вот забыл где. Просто ушел на дело, вернулся -висит сообщение про разлогин.
Как это сделать? Не ставить же тупо джаваскрипт счетчик времени и после истечения выводить предупреждение?
1. LShark - 22 Февраля, 2013 - 18:56:33 - перейти к сообщению
2. NoPaper - 22 Февраля, 2013 - 19:00:10 - перейти к сообщению
LShark пишет:
Не ставить же тупо джаваскрипт счетчик времени и после истечения выводить предупреждение?
Ну почему же тупо? Таймер на минуту, ajax'ом обращаться к скрипту, проверять на наличие сессии.
Вариант 2. Опять таймер. Но только уже не обращаться к серверу, а проверять куки на 'живучесть', т.е. сравнивать expires сессии и текущее время.
3. LShark - 22 Февраля, 2013 - 21:26:02 - перейти к сообщению
Хм... логично.
Просто под "тупо" я подразумевал просто джаваскриптовский отсчет 2 часов с момента "начала" работы и выведение сообщения, как только 2 часа миновало. Безо всяких запросов.
Но этот вариант не катит, если работать в 2 окна - в одном напишет, что все уже, а во втором сессия будет активна и ее время не истечет.
Просто под "тупо" я подразумевал просто джаваскриптовский отсчет 2 часов с момента "начала" работы и выведение сообщения, как только 2 часа миновало. Безо всяких запросов.
Но этот вариант не катит, если работать в 2 окна - в одном напишет, что все уже, а во втором сессия будет активна и ее время не истечет.
4. DeepVarvar - 22 Февраля, 2013 - 22:46:12 - перейти к сообщению
Мне кажется у вас тут попахивает легким бредком.
Вот смысл:
Вот смысл:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- "id"=>null,
- "name"=>"Гость",
- "lastname"=>null,
- "hash"=>null
- );
- $member = $_SESSION['member'];
- }
- if ($getMember = "попытка получить юзера по форме входа") {
- $member = $_SESSION['member'] = $getMember;
- }
- if ($checkMember = "попытка получить юзера по хешу из БД") {
- $member = $_SESSION['member'] = $checkMember;
- }
- }