Скрипт кто сейчас на сайте

Ответить
Аватара пользователя
Assasin
Сообщения: 105
Зарегистрирован: 17.02.2011
Писал для себя, что бы выводить кто сейчас в чате может кому пригодится.

База

Код: Выделить всё

CREATE TABLE IF NOT EXISTS `online_chat` (
  `id` text character set utf8 NOT NULL,
  `data` text character set utf8 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Код

Код: Выделить всё

$user = $_SESSION['id']; //Сессия пользователя
$date = date(H.i.s); // Время
$data_real = $date - 250; // Вычитаем из времени захода пользователя 250 секунд..т.е если это время он не обновлял страницу то в списке Онлайн его не будет
$duble = mysql_query("SELECT * FROM online_chat WHERE id = $user",$sql); // Смотрим если такой пользователь в базе
        
$who = mysql_fetch_array($duble); // Обрабатываем массив

if($user == $who['id']){  // Если пользователь есть то удаляем его ид и записываем новое время его активности.
   mysql_query("DELETE FROM online_chat WHERE id = $user",$sql); // Можно сделать и UPDATE но мне так удобней
   mysql_query("INSERT INTO online_chat VALUES($user,$date)",$sql);
}
else  // Если пользователя ещё нет в базе Онлайн то записываем
{
   mysql_query("INSERT INTO online_chat VALUES($user,$date)",$sql);
   echo 'net';
}
    
$array = mysql_query("SELECT * FROM online_chat WHERE data > '$data_real'",$sql); // Выводим пользователей
while($users = mysql_fetch_array($array))
{
   echo $users['id'];
} 

Вот и всё
< ̄`ヽ、       /  ̄ >
 ゝ、  \ /⌒ヽ,ノ   /´
   ゝ、 ( ( ͡◉ ͜> ͡◉) /
     >     ,ノ
  ℧   ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Аватара пользователя
AgentSIB
Сообщения: 329
Зарегистрирован: 17.05.2010

Код: Выделить всё

$date = date(H.i.s); // Время
Вот так корректно

Код: Выделить всё

$date = date(); // Время
И еще, перед тем как засунуть в запрос переменную, всегда делай либо intval либо mysql_escape_string. В данном случае, кончено, не существенно, однако лучше себя к этому приучить, чтобы избежать дырок для инжектирования.
Frustra fit per plura quod potest fieri per pauciora © Закон "Бритвы Оккама"

Аватара пользователя
Assasin
Сообщения: 105
Зарегистрирован: 17.02.2011
Я знаю,спасибо!
< ̄`ヽ、       /  ̄ >
 ゝ、  \ /⌒ヽ,ノ   /´
   ゝ、 ( ( ͡◉ ͜> ͡◉) /
     >     ,ノ
  ℧   ∠_,,,/´
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Ответить