会话重叠并在php中互相交换

时间:2019-05-17 10:06:42

标签: php session login

我正在通过网络浏览器进行游戏 我通过会话检查用户身份验证 一切都在localhost上运行良好 当我将文件上传到服务器并且播放器开始播放时 问题开始出现

问题很简单

我从会话中读取了玩家ID 当多个用户同时打开服务器时 玩家之间的ID互换 我试图解决问题 但全部失败

读取玩家ID

    if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }

    if(isset($_SESSION["id_player"])){
        $playerId = $_SESSION["id_player"];
    }
    if($_SESSION["auth"] != returnIAuthToken()){


    exit();
   }

    session_write_close();

功能预防问题

function returnIAuthToken(){
    return md5((isset($_SERVER['HTTP_CLIENT_IP']) ?
            $_SERVER['HTTP_CLIENT_IP'] : 
        isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?
        $_SERVER['HTTP_X_FORWARDED_FOR'] :
        $_SERVER['REMOTE_ADDR']).(!empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'no ua'));
}

设置玩家ID


if (session_status() == PHP_SESSION_NONE) {
            session_start();
        }

        $_SESSION["id_player"]     = $id_user;
        $_SESSION["auth"]   = returnIAuthToken();

        session_write_close();

我进行了搜索,但一无所获

我将问题告知服务器管理员 但是他从代码中告诉了它 我知道这不是一个好问题 但我什至不知道问题出在哪里

0 个答案:

没有答案