<? //этот файл запускает скрит. добавляет, изменяет время онлайн или удаляет пользователя по истечению времени.
require_once $_SERVER["DOCUMENT_ROOT"]."/script/JsHttpRequest/lib/JsHttpRequest/JsHttpRequest.php";
$JsHttpRequest =& new JsHttpRequest("windows-1251");
error_reporting(0);
include $_SERVER["DOCUMENT_ROOT"]."/system/connect.php";
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
// ID сессии
$id_session = $_REQUEST['idsession'];
$ip_session = getRealIpAddr();
$user = $_SERVER['HTTP_USER_AGENT'];
$ro = "SELECT * FROM sessions WHERE id_session ='".$id_session."'";
$query = mysql_query($ro);
if(!$query)exit(mysql_error());
// Если в БД уже есть такой ID сессии , следовательно
//человек уже зашёл и пользуется ресурсом
// значит просто обновляем его последнее время обращение к серверу...
if(mysql_num_rows($query) > 0)
{
$sa = "UPDATE sessions SET up_date=NOW(), user='".$user."' , ip_addr='".$ip_session."' WHERE id_session ='".$id_session."'";
$upd = mysql_query($sa);
}
else
{
//... в противном случаи, пользователь только зашёл, регистрируем его посещение,
// внося его идентификационный номер в БД (ID-сессии).
$as="INSERT INTO sessions VALUES('".$id_session."',NOW(),'".
$user."','".
$ip_session."','','0')";
$into = mysql_query($as);
}
// Теперь чтоб определить когда пользователь вышел, предложим условие,
// если в течении 15 минут страницы с сервера больше не запрашивались,
// будем считать, что пользователь ушёл с сайта.
// Удаляем его ID сессии
$del = mysql_query("DELETE FROM sessions WHERE up_date<NOW()-INTERVAL '15' SECOND");
//Если поток был закрыт (окно менеджера) то пользователь ушел. Удаляем такую сессию.
$del = mysql_query("UPDATE sessions SET open_date_thread='' WHERE open_date_thread<NOW()-INTERVAL '5' SECOND");
//Считываем с таблицы messager - значение onlinemessager (0 выключен. 1 включен)
$sql = mysql_query("SELECT*FROM messager WHERE id_st='0'");
while($record = mysql_fetch_array($sql))
{
echo $record[1];
}
?>
|