Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: session's
 
 автор: 1999   (21.08.2007 в 20:05)   письмо автору
 
 

наконец-то взялся за написание своего мегавебдванольного чата)))
проблема встала при использовании сессий...

постараюсбь описать по пунктам
- пользователь при заходе вводит свой ник итд - все это сохраняется в сессию
- далее - session_cache_expire (так я надеялся поставить максимальное время бездействия в чате, но - увы)

собсна на это дело и встало. я думал сохранять данные о пользователе в сессию. и допустим если пользователь полчаса спит, то сессию убивать и его перекидывать на вход в чат. однако - после часа ожидания пишу что-то еще и - сессия жива и невридима. вот собсна и вопрос - как мне реализовать то, что я хочу. единственный пока выход как я вижу - использовать куки (причем каждый раз при постинге сообщний обновлять куку до занчения + 30 минут). или это не оптимальный вариант?

   
 
 автор: 1999   (21.08.2007 в 21:45)   письмо автору
 
   для: 1999   (21.08.2007 в 20:05)
 

.

   
 
 автор: Dk   (21.08.2007 в 22:07)   письмо автору
 
   для: 1999   (21.08.2007 в 21:45)
 

Значение переменной сессии можно узнать только после оправки пользователем сообщения. Написал он сообщение нажал на нужную кнопочку... вместо ожидаемой страницы снова регистрация.
Лучше на JS написить скрипт который через 30мин. перенаправляет на нужную страницу
И, конечно, выводить сколько осталось времени

   
 
 автор: 1999   (21.08.2007 в 22:27)   письмо автору
 
   для: Dk   (21.08.2007 в 22:07)
 

хех... интересно тогда:

> Значение переменной сессии можно узнать только после оправки пользователем сообщения
по идее после получаса сессия должна была исчезнуть, ведь так? тогда почему же после часа сессия была все еще жива и плюс к этому сохранила все свои значения?

> Лучше на JS написить скрипт который через 30мин. перенаправляет на нужную страницу
через 30 минут... это выгляждит несколько странна, не находите? как бомба)

   
 
 автор: Dk   (21.08.2007 в 23:07)   письмо автору
 
   для: 1999   (21.08.2007 в 22:27)
 

>по идее после получаса сессия должна была исчезнуть, ведь так?
почему она должна исчезнуть?
>через 30 минут... это выгляждит несколько странна, не находите? как бомба)
Нет написал же, сообщение выводить надо в котором будет идти отсчет, для этого и JS нужен, если без предупреждения перенаправлять то и JS не нужен и ни куки ни сессии

   
 
 автор: 1999   (21.08.2007 в 23:26)   письмо автору
 
   для: Dk   (21.08.2007 в 23:07)
 

> почему она должна исчезнуть?
ну.. собсна с этого и начиналось мое повествование. мне это и надо. чтоб после получаса простоя допустим - пользователя перебрасывало на другую страницу. ну и собсна чтоб удалялись все данные о том, что это пользователь является именно тем самым.

> ет написал же, сообщение выводить надо в котором будет идти отсчет
не понял... в каком сообщении отсчет?

   
 
 автор: Dk   (21.08.2007 в 23:43)   письмо автору
 
   для: 1999   (21.08.2007 в 23:26)
 

>не понял... в каком сообщении отсчет?

Да не в сообщении отсчет
Для написания сообщения у Вас осталось <input type="text" name="time" value="" /> минут
в <input type="text" name="time" value="" /> ведется обратный отсчет
Так понятно?

>после получаса простоя допустим - пользователя перебрасывало на другую страницу. ну и собсна чтоб удалялись все данные о том, что это пользователь является именно тем самым.

Перенаправляем пользователю каким либо спопобом на страницу где уничтожается его сессия и идет перенаправление на страницу регистрации

   
 
 автор: 1999   (21.08.2007 в 23:50)   письмо автору
 
   для: Dk   (21.08.2007 в 23:43)
 

> Так понятно?
епрст. я и говорю - это выглядит как бомба. да и вобще - показывать пользователю оьратный отсчет времени - это несколько неправильно. напрягает

> Перенаправляем пользователю каким либо спопобом на страницу где уничтожается его сессия и идет перенаправление на страницу регистрации
ааа.... как объяснить... как вы на этой странице самой проверите, прошло время или нет? вот я например думал, что session_cache_expire сделает так, что сессия будет жива ровно 30 минут, ан нет. вышло все по-другому

   
 
 автор: Dk   (22.08.2007 в 00:28)   письмо автору
 
   для: 1999   (21.08.2007 в 23:50)
 

> показывать пользователю оьратный отсчет времени - это несколько неправильно. напрягает

Что лучше:
1 Внезапный редирект
2 При добавлении сообщения пользователь вместо ожидаемого добавления свох творений попадает на станицу регистрации
3 Предупредить что и когда произойдёт

>напрягает
Поверьте нет, но обязательно со сторны дизайна надо хорошо проработать

>как вы на этой странице самой проверите, прошло время или нет
Никак, если произошол редирект на эту страницу значит время истекло

   
 
 автор: 1999   (22.08.2007 в 14:08)   письмо автору
 
   для: Dk   (22.08.2007 в 00:28)
 

> Поверьте нет, но обязательно со сторны дизайна надо хорошо проработать
честно - не айс. ни в одном чате такого не видел... да и тем более если человека такое раздражает, то он возьмет и отключит джаваскрипт. и все - нету никакой переадресации после 30 минут итд итп. и соответственно потом человек при постинге сообщений банально включит джаваскрипт обратно и сможет все запостить. так что ваше решение не является таковым

ищем дальше

   
 
 автор: Faraon   (22.08.2007 в 14:16)   письмо автору
 
   для: 1999   (22.08.2007 в 14:08)
 

А Вы не пробовали задать время жизни сессии?

ini_set('session.gc_maxlifetime', 1800);  
В данном случае время жизни сессии полчаса

   
 
 автор: 1999   (22.08.2007 в 15:24)   письмо автору
 
   для: Faraon   (22.08.2007 в 14:16)
 

хм... а она будет полчаса жить с момента задания? или с момента когда пользователь что-то делает используя ее?

   
 
 автор: Faraon   (22.08.2007 в 15:26)   письмо автору
 
   для: 1999   (22.08.2007 в 15:24)
 

с момента когда пользователь что-то делает используя ее

   
 
 автор: 1999   (22.08.2007 в 16:19)   письмо автору
 
   для: Faraon   (22.08.2007 в 15:26)
 

хм... тогда такой вопрос - ещесекундное вызывание ini_set - это нормально?

   
 
 автор: Faraon   (22.08.2007 в 16:26)   письмо автору
 
   для: 1999   (22.08.2007 в 16:19)
 

>ещесекундное
не понял этого слова

ini_set вызывается 1раз перед session_start();

   
 
 автор: 1999   (23.08.2007 в 00:35)   письмо автору
 
   для: Faraon   (22.08.2007 в 16:26)
 

ini_set будет вызываться КАЖДЫЙ пользователем при КАЖДОЙ отправке сообщений. Т.е. будет выполняться чаще чем раз в секунду. По мне так столько раз вызывать ini_set несколько.. неправильно

   
 
 автор: 1999   (23.08.2007 в 01:56)   письмо автору
 
   для: 1999   (21.08.2007 в 20:05)
 

.

   
 
 автор: 1999   (23.08.2007 в 12:05)   письмо автору
 
   для: 1999   (23.08.2007 в 01:56)
 

помогите...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования