Как сделать проверку кто в онлайни на странице? (php)
Меня сильно интересует как сделать проверку кто в онлайник, столкнулся с такой проблемой что в настройки пользователя можно зайти одновременна 2м юзерам! Вот вопрос как отловить что он в онлайни или как отловить его выход со странице! Ну и сделать проверку принимаю все предложения кроми cookie
Цитата:
Originally posted by Dmitrii J.
Меня сильно интересует как сделать проверку кто в онлайник, столкнулся с такой проблемой что в настройки пользователя можно зайти одновременна 2м юзерам! Вот вопрос как отловить что он в онлайни или как отловить его выход со странице! Ну и сделать проверку принимаю все предложения кроми cookie
Меня сильно интересует как сделать проверку кто в онлайник, столкнулся с такой проблемой что в настройки пользователя можно зайти одновременна 2м юзерам! Вот вопрос как отловить что он в онлайни или как отловить его выход со странице! Ну и сделать проверку принимаю все предложения кроми cookie
Попробуй сесии с записью в базу.
Цитата:
Originally posted by dodger
Попробуй сесии с записью в базу.
Попробуй сесии с записью в базу.
ну а как делать выгруз из базы? как выловить его выход с сайта?
сделай тайм-оут. Например 15 минут. Все записи старше 15 минут удаляй из базы
session_start();
define("MAX_IDLE_TIME", 3);
function getOnlineUsers()
{
if ( $directory_handle = opendir( session_save_path() ) )
{
$count = 0;
while ($file = readdir( $directory_handle ) )
{
if($file != '.' && $file != '..')
{
if(time()- fileatime(session_save_path().'/'.$file) < MAX_IDLE_TIME * 60)
{
$count++;
}
}
}
closedir($directory_handle);
return $count;
}
else
{
return false;
}
}
echo getOnlineUsers();
?>
покажет сколько посетителей на сайте.
А по поводу выхода, я скажу как сам делал: каждую минуту обновлялась страница, которая ставила текущее время, а каждых 2 минуты запускался скрипт, который удалял из базы всех, "не зарегился", то есть у кого по каким - то причинам не обновилась страница (вышел, оборвалась связь, глюк какой-то...)
Цитата:
Originally posted by Новая папка
<?php
session_start();
define("MAX_IDLE_TIME", 3);
function getOnlineUsers()
{
if ( $directory_handle = opendir( session_save_path() ) )
{
$count = 0;
while ($file = readdir( $directory_handle ) )
{
if($file != '.' && $file != '..')
{
if(time()- fileatime(session_save_path().'/'.$file) < MAX_IDLE_TIME * 60)
{
$count++;
}
}
}
closedir($directory_handle);
return $count;
}
else
{
return false;
}
}
echo getOnlineUsers();
?>
покажет сколько посетителей на сайте.
А по поводу выхода, я скажу как сам делал: каждую минуту обновлялась страница, которая ставила текущее время, а каждых 2 минуты запускался скрипт, который удалял из базы всех, "не зарегился", то есть у кого по каким - то причинам не обновилась страница (вышел, оборвалась связь, глюк какой-то...)
<?php
session_start();
define("MAX_IDLE_TIME", 3);
function getOnlineUsers()
{
if ( $directory_handle = opendir( session_save_path() ) )
{
$count = 0;
while ($file = readdir( $directory_handle ) )
{
if($file != '.' && $file != '..')
{
if(time()- fileatime(session_save_path().'/'.$file) < MAX_IDLE_TIME * 60)
{
$count++;
}
}
}
closedir($directory_handle);
return $count;
}
else
{
return false;
}
}
echo getOnlineUsers();
?>
покажет сколько посетителей на сайте.
А по поводу выхода, я скажу как сам делал: каждую минуту обновлялась страница, которая ставила текущее время, а каждых 2 минуты запускался скрипт, который удалял из базы всех, "не зарегился", то есть у кого по каким - то причинам не обновилась страница (вышел, оборвалась связь, глюк какой-то...)
В принципе я уже нашел решения, как выловить выход. <body onUnLoad= “”></body>
Выполняет действия при закрытии (обновлении окна), у меня удаляла с базы. Но столкнулся с проблемой обновления странице, решил воспользоваться твоим решения накропал таймер на c++ вот тока стал вопрос как лучше реализовать обновления окна через фрейм (чтобы не вся страница обновлялась) или JavaScript. Подскажи, как ты сделал! Или какой путь более экономичен по нагрузки и быстро действию.
Если это, конечно, не чат.
Так что я бы сильно подумал, перед тем, как внедрять такие решения.
Страница в локальной сети, потом пока не какого решения нет и полностью страницу обновлять тоже я не буду фреймик где-то внизу размером 10*15. Я уверин что можно написать javascript который будет обновлять базу через некоторое время, но не будет обновлять страницу с пользователям. Но вопрос как? (помогите написать, может новое окно открывать через каждую минуту?)