2014-01-30 4 views
0

Здравствуйте, я хочу, чтобы обновить LastActive строку каждые 10 секунд (что-то вроде сердцебиения), так что я написал это:Проверьте пользователь онлайн

$(document).ready(function() 
{ 
    var checkOn = setInterval(function() 
    { 
     $.get("cm/check-online.php"); 
    }, 10000); 
}); 

<?php 
    require_once("config.php"); 

    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    $my_id = $_SESSION['z_id']; 

    $q_update_myself = "UPDATE acc SET LastTimeActive='NOW()' AND LoggedIn='1' WHERE z_id='$my_id'"; 
    $do_q_update_myself = mysqli_query($dbc, $q_update_myself); 
?> 

, но это не работает, и я не знаю, как это исправить: | Мне нужно это, потому что я использую скрипт для всех пользователей, а если его LastTimeActive> 30, то он устанавливает «LoggedIn» равным 0.

И это не сработает, потому что LastTimeActive все тот же, что и join_date. .. он не меняется.

+3

Определение "не работает" – zerkms

+1

'LastTimeActive = 'NOW()'' --- вы понимаете, что вы назначая строковым ' 'NOW()'' здесь? – zerkms

+0

Ваш сценарий даже называется? – zerkms

ответ

0

у вас проверить, что вы получаете ваш Z_id сеанса вар из PHP сценария AJAX призывающего

Вы должны сделать это на каждой странице, которая получает доступ к сессии, прежде чем получить доступ к нему:

session_start(); 

делает это работа для вас?

<?php 
require_once("config.php"); 
session_start(); 

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

$my_id = $_SESSION['z_id']; 
$time_now = date("Y-m-d H:i:s") 

if(isset($my_id) && !empty($my_id)){ 
$q_update_myself = "UPDATE acc SET LastTimeActive='$time_now' AND LoggedIn='1' WHERE z_id='$my_id'"; 
$do_q_update_myself = mysqli_query($dbc, $q_update_myself); 
}else{ 
//error No Z_ID 
} 
?> 
+0

спасибо, работает ... Мне также пришлось изменить свой запрос, потому что «,» отсутствовал :) – user3251400

Смежные вопросы