
16.03.2009, 09:38
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Я думаю лучше запостить пример.
Создаём таблицу:
Код:
CREATE TABLE `sessions` (
`sid` varchar(32) NOT NULL,
`lastdate` datetime NOT NULL
) ENGINE=MyISAM;
Сам скрипт:
PHP код:
<?php
session_start();
$interval = 15; //Интервал бездействия пользователя в минутах
$sid = session_id(); //Берём ID сессии
$sql = mysql_query("SELECT * FROM `sessions` WHERE `sid` = '".$sid."'");
if($sql && mysql_num_rows($sql)){
/*
Если сессия с таким ID уже записана, обновляем
*/
mysql_query("UPDATE `sessions` SET `lastdate` = NOW() WHERE `id_session`='".$sid."'");
}else{
/*
Если нет, добавляем
*/
mysql_query("INSERT INTO `sessions` VALUES('".$sid."', NOW())");
}
/*
Удаляем записи пользователей не проявивших активность
в течении времени указанного в $interval
*/
mysql_query("DELETE FROM `sessions` WHERE `lastdate` < NOW() - INTERVAL '".$interval."' MINUTE");
?>
И вывод типа того:
Код:
SELECT COUNT(*) AS `online` FROM `sessions`
|
|
|