проблема с функциями connection_***()

domino

Новичок
проблема с функциями connection_***()

Привет всем. есть такая трабла: я хочу изменять статус юзера в таблице юзерс на false как только его дисконнектнет. Хотелось бы реализовать это семейством функций connection_***(); Проблема в том, что во всех мануалах написано одно и тоже.. Я ничего не могу понять. Т.е. принцип ясен, но как сделать чтобы всё работало.. Мне посоветовали вставлять ткой цикл в нулевой фрейм:
PHP:
set_time_limit(0);
ignore_user_abort(true);
while(true)
{
sleep(20);
echo '\n';
if(connection_aborted())
{
/*аплоадим таблицу, убиваем все сеансовые переменные */ 
session_destroy();   
exit; 
}
}
ну, единственное что - я перед таким циклом в файле, который включаю в основной сценарий после регистрации переменных по <iframe> ставлю ещё сессион_старт. Что получается - если юзер выходит с сайта нормально, то сессия закрывается нормально. если его вырубает, то сессия закрывается автоматически. первый вариант перестал работать, как только я вставил этот фрейм в основной сценарий - почему-то перестала выполняться функция сессион_дестрой(). кроме того, сам фрейм не выполняет то, что я от него хочу. в общем, идей никаких... да. и ещё. похоже пхп плевать на функцию set_time_limit. Помогите плз.... Временной фактор.....

-~{}~ 27.03.04 00:32:

/*
как только я вставил этот фрейм в основной сценарий - почему-то перестала выполняться функция сессион_дестрой() -имею ввиду, при нормальном выходе юзера с сайта.
*/
 

Lav

Guest
Что ты имеешь в виду под "как только его disconnected"? То, что пользователь нажал Stop? Или то, что сессия expired?
 

Lav

Guest
Вовсе не обязательно. Зависит от того, что человек хотел сделать. Например, при создании чата вопрос вполне осмысленен (хотя и чрезвычайно сумбурен).

И вообще, на этом форуме просто какая-то мания "посылать" людей, задающих вопросы, вместо того, чтобы попытаться разобраться, что же человеку надо.
 

SiMM

Новичок
Автор оригинала: Lav
вместо того, чтобы попытаться разобраться, что же человеку надо.
С такой формулировкой вопроса сложно понять, что ему надо, а навыками гадалки обладает не каждый ;) Поэтому либо нормальная формулировка проблемы, либо своими силами после [f]na_tanke[/f]
 

domino

Новичок
я имею ввиду - когда пользователь нажимает стоп.
кстати, а что я не так спросил?

есть нулевой фрейм в основном сценарии. во фрейме бесконечный цикл, который заставляет сервер проверять соединение. как только юзер отключается по какой-то причине, сервер должен изменить в БД его статус в false. Вроде всё.
 

SiMM

Новичок
domino, а воспользоваться [m]register_shutdown_function[/m] не получится? И, если не сложно - зачем тебе держать постоянное соединение с пользователем (всё, что приходит на ум - это только разве что для чата)?
 

domino

Новичок
fixxxer: спасибо тебе. всё работает.
только такой вопрос:
через каждые 5 секунд запрос в БД от одного юзера. если есть 1000 юзеров? это 720000 запросов в час!! серверу плохо не будет????
 
Сверху