如何使用PHP控制并发用户

时间:2009-11-23 08:36:54

标签: php cookies session

我正在使用PHP + MySQL。

无论如何我可以控制并发用户(只有1个用户的1个用户)来访问 我的php页面?不允许复制密钥从不同的机器访问我的PHP,如何通过我的PHP会话/ cookie处理这个?

任何建议都将不胜感激!

2 个答案:

答案 0 :(得分:1)

您可以尝试使用此解决方案。

concurrent_users.php

// created cookie with createdSessionID
$cookie_array = explode("-", $_COOKIE['cookie']); //retrieve contents of cookie in an array
//print("cookie:" . $cookie_array[0]); //display the content

    //Retrieve data from TBL_LogUsersCurrent
    $QueryI = "SELECT * FROM TBL_LogUsersCurrent WHERE UserID=".$_SESSION['SessionUserID']."";    
    $ResultI = mysql_query($QueryI);

    //fetch the query result
    $Row = mysql_fetch_array($ResultI,MYSQL_NUM);
    $Arr_Row = $Row[4];
    //echo "database:" .$Arr_Row;

    //compare the createdSessionID in cookie and database
            if ($cookie_array[0] != $Arr_Row) {
                //redirect the user to login page if already the user has logged in
                header ("Location:  http://" . $_SERVER['HTTP_HOST'] . "/". $SystemFolder . "/index.html?AS=1$extraA");
                mysql_close();
                //Deleting Cookies:Expiration date should be in the past, to trigger the removal mechanism in the browser. 
                setcookie("cookie", $_SESSION['createdSessionID'],time() - 3600);
                exit();
            }

答案 1 :(得分:0)

当然可以。创建会话表并在用户尝试登录时对登录用户执行检查。当该用户的注册会话已经全部拒绝登录时。

您必须记住的唯一事项是在设置保持活动时间时进行会话清理。