| |
|
|
| | наконец-то взялся за написание своего мегавебдванольного чата)))
проблема встала при использовании сессий...
постараюсбь описать по пунктам
- пользователь при заходе вводит свой ник итд - все это сохраняется в сессию
- далее - session_cache_expire (так я надеялся поставить максимальное время бездействия в чате, но - увы)
собсна на это дело и встало. я думал сохранять данные о пользователе в сессию. и допустим если пользователь полчаса спит, то сессию убивать и его перекидывать на вход в чат. однако - после часа ожидания пишу что-то еще и - сессия жива и невридима. вот собсна и вопрос - как мне реализовать то, что я хочу. единственный пока выход как я вижу - использовать куки (причем каждый раз при постинге сообщний обновлять куку до занчения + 30 минут). или это не оптимальный вариант? | |
| |
|
|
| |
|
|
| |
для: 1999
(21.08.2007 в 20:05)
| | | . | |
| |
|
|
| |
|
|
| |
для: 1999
(21.08.2007 в 21:45)
| | | Значение переменной сессии можно узнать только после оправки пользователем сообщения. Написал он сообщение нажал на нужную кнопочку... вместо ожидаемой страницы снова регистрация.
Лучше на JS написить скрипт который через 30мин. перенаправляет на нужную страницу
И, конечно, выводить сколько осталось времени | |
| |
|
|
| |
|
|
| |
для: Dk
(21.08.2007 в 22:07)
| | | хех... интересно тогда:
> Значение переменной сессии можно узнать только после оправки пользователем сообщения
по идее после получаса сессия должна была исчезнуть, ведь так? тогда почему же после часа сессия была все еще жива и плюс к этому сохранила все свои значения?
> Лучше на JS написить скрипт который через 30мин. перенаправляет на нужную страницу
через 30 минут... это выгляждит несколько странна, не находите? как бомба) | |
| |
|
|
| |
|
|
| |
для: 1999
(21.08.2007 в 22:27)
| | | >по идее после получаса сессия должна была исчезнуть, ведь так?
почему она должна исчезнуть?
>через 30 минут... это выгляждит несколько странна, не находите? как бомба)
Нет написал же, сообщение выводить надо в котором будет идти отсчет, для этого и JS нужен, если без предупреждения перенаправлять то и JS не нужен и ни куки ни сессии | |
| |
|
|
| |
|
|
| |
для: Dk
(21.08.2007 в 23:07)
| | | > почему она должна исчезнуть?
ну.. собсна с этого и начиналось мое повествование. мне это и надо. чтоб после получаса простоя допустим - пользователя перебрасывало на другую страницу. ну и собсна чтоб удалялись все данные о том, что это пользователь является именно тем самым.
> ет написал же, сообщение выводить надо в котором будет идти отсчет
не понял... в каком сообщении отсчет? | |
| |
|
|
| |
|
|
| |
для: 1999
(21.08.2007 в 23:26)
| | | >не понял... в каком сообщении отсчет?
Да не в сообщении отсчет
Для написания сообщения у Вас осталось <input type="text" name="time" value="" /> минут
в <input type="text" name="time" value="" /> ведется обратный отсчет
Так понятно?
>после получаса простоя допустим - пользователя перебрасывало на другую страницу. ну и собсна чтоб удалялись все данные о том, что это пользователь является именно тем самым.
Перенаправляем пользователю каким либо спопобом на страницу где уничтожается его сессия и идет перенаправление на страницу регистрации | |
| |
|
|
| |
|
|
| |
для: Dk
(21.08.2007 в 23:43)
| | | > Так понятно?
епрст. я и говорю - это выглядит как бомба. да и вобще - показывать пользователю оьратный отсчет времени - это несколько неправильно. напрягает
> Перенаправляем пользователю каким либо спопобом на страницу где уничтожается его сессия и идет перенаправление на страницу регистрации
ааа.... как объяснить... как вы на этой странице самой проверите, прошло время или нет? вот я например думал, что session_cache_expire сделает так, что сессия будет жива ровно 30 минут, ан нет. вышло все по-другому | |
| |
|
|
| |
|
|
| |
для: 1999
(21.08.2007 в 23:50)
| | | > показывать пользователю оьратный отсчет времени - это несколько неправильно. напрягает
Что лучше:
1 Внезапный редирект
2 При добавлении сообщения пользователь вместо ожидаемого добавления свох творений попадает на станицу регистрации
3 Предупредить что и когда произойдёт
>напрягает
Поверьте нет, но обязательно со сторны дизайна надо хорошо проработать
>как вы на этой странице самой проверите, прошло время или нет
Никак, если произошол редирект на эту страницу значит время истекло | |
| |
|
|
| |
|
|
| |
для: Dk
(22.08.2007 в 00:28)
| | | > Поверьте нет, но обязательно со сторны дизайна надо хорошо проработать
честно - не айс. ни в одном чате такого не видел... да и тем более если человека такое раздражает, то он возьмет и отключит джаваскрипт. и все - нету никакой переадресации после 30 минут итд итп. и соответственно потом человек при постинге сообщений банально включит джаваскрипт обратно и сможет все запостить. так что ваше решение не является таковым
ищем дальше | |
| |
|
|
| |
|
|
| |
для: 1999
(22.08.2007 в 14:08)
| | | А Вы не пробовали задать время жизни сессии?
ini_set('session.gc_maxlifetime', 1800);
| В данном случае время жизни сессии полчаса | |
| |
|
|
| |
|
|
| |
для: Faraon
(22.08.2007 в 14:16)
| | | хм... а она будет полчаса жить с момента задания? или с момента когда пользователь что-то делает используя ее? | |
| |
|
|
| |
|
|
| |
для: 1999
(22.08.2007 в 15:24)
| | | с момента когда пользователь что-то делает используя ее | |
| |
|
|
| |
|
|
| |
для: Faraon
(22.08.2007 в 15:26)
| | | хм... тогда такой вопрос - ещесекундное вызывание ini_set - это нормально? | |
| |
|
|
| |
|
|
| |
для: 1999
(22.08.2007 в 16:19)
| | | >ещесекундное
не понял этого слова
ini_set вызывается 1раз перед session_start(); | |
| |
|
|
| |
|
|
| |
для: Faraon
(22.08.2007 в 16:26)
| | | ini_set будет вызываться КАЖДЫЙ пользователем при КАЖДОЙ отправке сообщений. Т.е. будет выполняться чаще чем раз в секунду. По мне так столько раз вызывать ini_set несколько.. неправильно | |
| |
|
|
| |
|
|
| |
для: 1999
(21.08.2007 в 20:05)
| | | . | |
| |
|
|
| |
|
|
| |
для: 1999
(23.08.2007 в 01:56)
| | | помогите... | |
| |
|
|