Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 20:34   #1
eldar
Форумчанин
 
Аватар для eldar
 
Регистрация: 04.08.2008
Сообщений: 154
По умолчанию Сессия

Так вот у меня есть модуль онлайн работает по принципу обновление в таблице

PHP код:
<html>
<head>
<META CONTENT="5; URL=юзер.php" HTTP-EQUIV=Refresh>
</head>
<?php

 
//Необходимо подключиться к БД
(mysql connect)
$query ="SELECT * FROM `юзер` WHERE `active`=1";
$result=mysql_query($query);
while(
$r=mysql_fetch_array($result)) {

echo 
"$r[nick] <br/>";

}
?>

</html>
Так вот у меня вот такая проблема когда браузер закрываешь то как сделать чтобы пользователь был в оффлайн
тоесть
PHP код:
$query ="SELECT * FROM `юзер` WHERE `active`=0"
Я слышал про сессии
eldar вне форума Ответить с цитированием
Старый 27.05.2009, 23:59   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Нет, отловить момент закрытия нельзя
Нужно после каждой операции обновлять значение поля скажем с именем time = time(); (последнее - функция php)
Код:
$query = 'UPDATE `юзер` SET time='.time().' WHERE nick="'.$nick.'"'; //$nick - ник, как узнать его, дело ваше :)
mysql_query($query);
После этого в этом же скрипте пишите:
Код:
$thetime=time()-300; // деактивируем всех, кто не обновлял страницу >= 5 минут
$query ='UPDATE `юзер` SET `active`=0 WHERE `active`<>0 AND time<'.$thetime;
mysql_query($query);
В общем, так.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 29.05.2009, 15:01   #3
cronfy
Пользователь
 
Регистрация: 09.10.2008
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Dj_smart Посмотреть сообщение
Нет, отловить момент закрытия нельзя
Почему нельзя-то? Можно, только на JS. На onUnload повесить ajax-запрос, который сообщит, что пользователь закрыл страницу.

Но по таймауту тоже нужно проверять, потому что onUnload гарантии не даёт.
SPRINTHOST.RU — вот, что я люблю ;-)
cronfy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Спасите скоро сессия !!! PavelSS Паскаль, Turbo Pascal, PascalABC.NET 28 24.12.2008 08:15
Сессия polecat БД в Delphi 0 17.05.2007 17:45