![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| mike_prog |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 27.9.2003 Репутация: 1 Всего: 1 |
Как сделать, чтобы юзера выкидывало из чата, если он вышел не нажав на кнопку выхода, а нажал Alt-F4 или крестик? Help me please!!
|
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Проверять сессию - имхо самый разумный метод.
|
|||
|
||||
| pascal |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 16.7.2003 Где: Россия - Уфа Репутация: нет Всего: 1 |
Неопределённый ответ...
Если не указать время жизни cookie, то cookie живёт до тех пор пока пользователь не нажмёт крестик... как правило код сессии PHP передаёться как cookie без определённого срока жизни. Ну а всё остальное храниться уже в переменных сессии, а не в cookie... Таким образом достаточно данные хранить в переменных сессии... Самый простой способ обращения к переменным сессии: $HTTP_SESSION_VARS['xxx1'] = '1'; или $_SESSION['xxx2'] = '2'; |
||||
|
|||||
| mike_prog |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 27.9.2003 Репутация: 1 Всего: 1 |
Это я понимаю
он выйдет из него и опять запутить через пару сек., что тогда - из чата выкинет и опять регистрация Я вот думаю, может привязать ко времени, ну типа 5 мин не обновлялась страница - выкинуть. Насколько это реально? |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Я так и делал.
Окно обновляется каждые N секунд, если от пользователя не было обновлений M секунд, то его считают вышедшим и при следующем обновлении его попросят ввести заного логин и пароль. Для локальной сети N=2 сек, M=5-10 сек Для диалапа N=10 сек, M=60-120 сек. И вроде не плохо работает. N и M настраиваются при эксплуатации чата |
|||
|
||||
| pascal |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 16.7.2003 Где: Россия - Уфа Репутация: нет Всего: 1 |
ну за пару сек врядли удасться выйти и зайти через пару сек при глюке эксплорера... ну а если и выкинет, то регистрироваться точно заново не придёться...
Наверно самый оптимальный вариант... |
||||
|
|||||
| Гость_Raptus Melanholicus |
|
|||
|
Unregistered |
Способ с таймаутом сессии везде и применяется.
Но можно сделать круче, написав чат на джаве, в таком случае о закрытии окна моментально станет известно серверу =) |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Гость_Raptus Melanholicus, не факт, а если я кнопку на модеме нажму, а окно не закрою?
|
|||
|
||||
| pascal |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 16.7.2003 Где: Россия - Уфа Репутация: нет Всего: 1 |
Java приложение держит постоянное соединение, и если TCP соединение будет разорвано, чат об этом узнает... но тогда и сервер не на PHP писать надо... |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
значит трафик рать будет
|
|||
|
||||
| pascal |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 16.7.2003 Где: Россия - Уфа Репутация: нет Всего: 1 |
Да нет, наоборот... соединение будет просто открытым данные будут передаваться по мере их появления, а иначе каждый раз придёться заново запрос посылать, всё такое... |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
pascal Ну а минусы какие-то есть? Не верю, что это идеальный вариант
|
|||
|
||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
да сколько можно это обсуждать. админ сказал самый правильный ответ. додумать можно самостоятельно. у сессии есть время жизни... все клиенты при обнавлении задействуют скрипт проверяющий жизнеспособность всех сесиий. Как только время обновления одной из них устарело выкидываем.
-------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| HappyMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 347 Регистрация: 29.7.2004 Репутация: 2 Всего: 2 |
Пэйстаните плиз исходник.. я просто с сессиями не очень знаком а времени особо нету...
--------------------
© Mal Hack |
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 1 Всего: 4 |
Secandr
Минусы как всегда есть. Не у всех стоит J. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |