PHP更改session_id

时间:2018-09-17 19:13:03

标签: php session login

我的服务器提供商在统一分发session_id时遇到了一些问题。这导致该用户使用错误的帐户登录。 由于我没想到要花很长时间来追踪这种不当行为。

因此,我开始自行分配session_id。我发现了一些不太完善的功能,并对其进行了测试直到有效。我敢肯定,人们不应该那样做,但直到现在仍然有效。

我的提供者似乎更改了一些设置,但突然不起作用了。

这是我的代码。每次有人访问某个页面时,此功能都应检查他是否已登录并给他一个新的session_id()

session_start();

function isLoggedIn(){
    if (isset($_SESSION["user_id"]) and isset($_SESSION["user_agent"])) {
        if ($_SESSION["user_agent"] != md5($_SERVER['HTTP_USER_AGENT'])) {
            $loggedIn = FALSE;
        }else{
            $loggedIn = TRUE;
        }
    }
    else {
         $loggedIn = FALSE;
    }
    if ($loggedIn == FALSE) {
        header("Location: login.php?displayinfo=1");
        die("<br /><br /> you are not logged in");
    }


    // $newid = session_create_id($_SESSION["user_id"]); // isn't working for some reason
    $newid =  md5($_SESSION["user_id"]) . random_str(20);

    // Set new custome session ID
    session_id($newid);
    session_commit();

    session_start();

    return $loggedIn;
}

也许您可以给我一些建议,说明我如何正确执行此操作。

0 个答案:

没有答案