PHP Проверьте, находится ли пользователь в сети

Может ли кто-нибудь сказать мне, почему это не работает? В моей базе данных lastactive находится 2013-12-10 16:15:12 , обновляется каждый раз, когда пользователь обновляет любую страницу на моем сайте.

Я выбираю его и устанавливаю его как переменную:

 $lastactive = $row[5]; 

Вот где я думал, что он должен работать, но нет. Использование 10 секунд для тестирования.

 if(time() > $lastactive+10){ print('<div id="user_online_status" style="color: #aaa;">[OFFLINE]</div>'); } else if(time() < $lastactive+10){ print('<div id="user_online_status">[ONLINE]</div>'); } 

Related of "PHP Проверьте, находится ли пользователь в сети"

Замените оператор SELECT :

 SELECT lastOnline FROM user 

к чему-то вроде …

 SELECT UNIX_TIMESTAMP(lastOnline) FROM user 

это оно. Вы в настоящее время проверяете строку Date на отметке времени UNIX.

Вы сравниваете временную метку unix с строкой datetime MySQL. Вам необходимо преобразовать его в временную метку unix перед сравнением двух:

 $lastactive = strtotime($row[5]); 

Я не вижу его хорошей проверки, чтобы проверить время.

Что делать, если пользователь не обновляет страницу, он позволил странице открыть и пошел есть? , он будет выходить из системы? это будет анонимность.

Я думаю, лучше использовать разгрузку

  $(window).unload(function() { // Send an Ajax request to logout.php }); 

если пользователь не обновляет страницу, вы можете проверить его на сервере с помощью cron.

 $limit = $userOnline+60; // cron set to run every minute if($userOnline < $limit) $userStatus = "offline"; else $userStatus = "online";