【问题标题】:How to use PHP control concurrent users如何使用PHP控制并发用户
【发布时间】:2009-11-23 08:36:53
【问题描述】:

我正在使用 PHP + MySQL。

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

任何建议将不胜感激!

【问题讨论】:

    标签: php cookies session


    【解决方案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();
                }
    

    【讨论】:

      【解决方案2】:

      当然可以。当用户尝试登录时,创建一个会话表并检查已登录的用户。当该用户已注册会话时,已拒绝登录。

      您必须记住的唯一一件事是设置保活时间时的会话清理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-11
        相关资源
        最近更新 更多