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

Аватара пользователя
Assasin
Сообщения: 102
Зарегистрирован: 17 фев 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 май 2010

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

$date = date(H.i.s); // Время

Вот так корректно

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

$date = date(); // Время

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

Аватара пользователя
Assasin
Сообщения: 102
Зарегистрирован: 17 фев 2011
Я знаю,спасибо!


Вернуться в «PHP»