Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение БД при выходе? 
:(
    Опции темы
Reptor
Дата 13.2.2005, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Например есть поле в БД которое при входе устанавливаеться "1".
А как сделать так что когда мы закрываем окно (страницку) тоесть при выходе БД менялась - тоесть это поле устанавливалось в "0"
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.2.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Никак...
А что ты сделать пытаешься?
PM ICQ   Вверх
Reptor
Дата 13.2.2005, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Мне надо если человек зашёл на страничку то поле в БД установилось в 1 (естественно только 1 строка которая ему соответствует). И когда он выходит мне надо в БД отметить что его уже нету тоесть это 1 заменить на 0
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.2.2005, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



С помощью PHP нельзя определить, когда человек вышел со страницы.
Если ты хочешь сделать систему On-Line пользователей или авторизацию, то делается это другими способами.
Тут на форуме это уже наверняка обсуждалось.
PM ICQ   Вверх
Reptor
Дата 13.2.2005, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



А что на <BODY> какогото unloadнет или чего небудь в этом роде?
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.2.2005, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Не путай. Есть клиентские технологии, а есть серверные.
PM ICQ   Вверх
Reptor
Дата 13.2.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



так можно ж вызывать на unload (если такова есть) функцию которая с помощю XMLHttpRequest дёргала б РНР скрипт который бы лез в БД и делал там что надо а потом брал из БД новый список людей которые сейчас присутствуют?
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.2.2005, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Reptor @ 13.2.2005, 13:47)
unload

Это - конец загрузки.

Есть OnExit, но не забывай, что если я просто закрываю браузер или вкладку то оно не сработает.
PM ICQ   Вверх
Reptor
Дата 13.2.2005, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Цитата
что если я просто закрываю браузер или вкладку то оно не сработает


тоесть если нажать на крестик то нечего не будет?


И ещё я нашол функцию OnUnload
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.2.2005, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Reptor @ 13.2.2005, 14:05)
тоесть если нажать на крестик то нечего не будет?

Естественно...
Вариант с открытием Попап окна я тебе не предлагаю.

Цитата(Reptor @ 13.2.2005, 14:05)
И ещё я нашол функцию OnUnload

OnLoad - при загрузке
OnUnLoad - окончание загрузки.
PM ICQ   Вверх
Sardar
Дата 13.2.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



Цитата(Mal @ 13.2.2005, 13:11)
OnUnLoad - окончание загрузки.

Нет, при закрытии окна, но не во всех браузерах есть это событие.

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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Reptor
Дата 13.2.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Что значит таймаут?
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.2.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Reptor @ 13.2.2005, 15:31)
Что значит таймаут?

Ты пишешь в базу время, когда последний раз пользователь зашел на страничку.
Затем ты смотришь, чтобы это время было больше чем 15 минут, к примеру. Эти 15 минут и будут тайм-аутом.
PM ICQ   Вверх
Axxent
Дата 13.2.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 25.3.2004
Где: Новосибирск

Репутация: 3
Всего: 5



Да. Таймаут - это самое разумное решение. Конечно, можно средствами JS при закрытии порождать новое окно, которое обращалось бы к какому-то скрипту, сбрасывающему базу, но смысл?
PM MAIL ICQ   Вверх
Reptor
Дата 13.2.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



так сто мне весно надо юудет дёргать БД и сравнивать время. И как в БД внести изменения.
Получаеться за каждым пользователем надо следить каждую секунду или как?
PM MAIL ICQ   Вверх
Alx
Дата 13.2.2005, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



я бы сделал попапом...


--------------------
PM MAIL WWW ICQ   Вверх
penizillin
Дата 13.2.2005, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 10.11.2004

Репутация: 8
Всего: 9



Цитата(Reptor @ 13.2.2005, 15:20)
Получаеться за каждым пользователем надо следить каждую секунду или как?
нет, только при каждом его обращении к серверу.
PM MAIL ICQ   Вверх
Alx
Дата 13.2.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



penizillin
а если обращения не будет?


--------------------
PM MAIL WWW ICQ   Вверх
Reptor
Дата 13.2.2005, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Цитата
я бы сделал попапом...

А это как?
PM MAIL ICQ   Вверх
penizillin
Дата 13.2.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 10.11.2004

Репутация: 8
Всего: 9



Цитата(Alx @ 13.2.2005, 15:38)
а если обращения не будет?
значит, не будет. а таблицу можно регулярно подчищать.
PM MAIL ICQ   Вверх
Sardar
Дата 13.2.2005, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



Цитата(Alx @ 13.2.2005, 16:38)
а если обращения не будет?

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

Цитата(Alx @ 13.2.2005, 16:21)
я бы сделал попапом...

Только скрытым ифреймом, попапы браузер убивает. При скрытии окошка браузера у тебя не будет времени загрузить страницу(вспомним про тех кто на модемах), к тому же браузер может запретить любую перезагрузку при закрывании окна.


Вывод: не извращайтесь, делайте по старинке, как уже много лет поверенно и доказанно что работает smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Opik
Дата 13.2.2005, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Mal Hack
есть функция JS, которая что то делает, при закрытии браузера/окна... только говорить не буду, т.к она это не выход smile)
PM MAIL Skype   Вверх
Mal Hack
Дата 13.2.2005, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Это обрадотка события толи OnClose, толи ONExit.
В любом случае делать надо по тайм-ауту smile
PM ICQ   Вверх
Reptor
Дата 14.2.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



если делать по таймауту тогда вдруг пользователь отлучиться случайно или ещё что (тоесть не будет давать о себе знать) то получиться что его принудительно выкенет а так мне нельзя, а если рано выйдет тогда список пользователей обновиться не сразу а через определённое время.
Тоесть мне 100% надо знать когда он нажал кнопочку выход или крестик (но не релоуд).
Может кто то вспомнит функцию JS с помощью которой можна такое сделать или ещё чего то (РНР)?
PM MAIL ICQ   Вверх
Mal Hack
Дата 14.2.2005, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Reptor @ 14.2.2005, 16:39)
если делать по таймауту тогда вдруг пользователь отлучиться случайно или ещё что (тоесть не будет давать о себе знать) то получиться что его принудительно выкенет а так мне нельзя, а если рано выйдет тогда список пользователей обновиться не сразу а через определённое время.

Так все делают.

Цитата(Reptor @ 14.2.2005, 16:39)
знать когда он нажал кнопочку выход

Если ты ее сам сделаешь - то по ее нажатии и узнаешь.

Цитата(Reptor @ 14.2.2005, 16:39)
или крестик

Никак, без открытия нового окна. И то сработает лишь в 30% случаев.
PM ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0978 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.