我的服务器提供商在统一分发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;
}
也许您可以给我一些建议,说明我如何正确执行此操作。