0

我正面临 PHP 响应的问题。我使用延迟 3 秒的 Ajax 来检查用户的日志。当用户帐号与两个用户同时使用时,必须踢出其中一个。如果与会话相等,我曾经跟踪 db 中的日志 ID。问题是即使没有其他用户使用他/她的帐户,一些用户也会被踢。我尝试print_r查询语句,它返回不同的值。这可能是其他用户的响应。

我正在使用 IIS 服务器和 FastCGI 进行 PHP 响应。

有人能告诉我这怎么可能,并给我解决这个问题的想法吗?谢谢。

这是一些代码:

使用 Ajax 检查数据库中的日志:

public function CheckLogStatus( $name, $email, $sess_code ) { 

    $qry = "Select log from $this->tablename where name='$name' and email='$email'";
    //when I print this statement it returns different values of $name and $email

    $result = mysql_query( $qry ) or die(mysql_error()); 

    if( !$selResult = mysql_fetch_array($result) ) {
        return false;
    }

    if(!isset($_SESSION)) {
        session_start();
    }

    if( !isset( $selResult['log'] ) && $selResult['log'] != '' ) {
        if( $selResult['log'] != $sess_code ) {
            //$_SESSION['LOGS'] = 'USED';
            return false;
        }
    }

    return true;
}
4

1 回答 1

0
<?php
session_start();
$_SESSION['LOG'] = $log;
setcookie("Log",$log,time()*24*60*60); //expires after 24hrs
?>

功能 CheckLogStatus 与您上面提到的相同,

<?php
public function CheckLogStatus( $name, $email, $sess_code ){
$qry = "Select log from $this->tablename where name='$name' and email='$email'";
$result = mysql_query( $qry ) or die(mysql_error());
if( !$selResult = mysql_fetch_array($result) ){
return false;
}
if(!isset($_SESSION)){ session_start(); }
if( !isset( $selResult['log'] ) && $selResult['log'] != '' ){ 

         if( $selResult['log'] != $sess_code ) {
    return false;
}
}

return true;
}
?>

但路过的时候,

<?php
CheckLogStatus( "Myname", "contact@email.com", $_COOKIE['Log'] );
?>
于 2013-04-04T23:47:55.650 回答