所以,我想在用户注销后保留一个特定的会话变量。像这样:
// Save the session variable
$foo = $_SESSION["foo"];
// Terminate the session
//----------------------------------------------
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), "", time() - 3600,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
session_regenerate_id();
//----------------------------------------------
// Restart the session
session_start();
// Store the variable in the session
$_SESSION["foo"] = $foo;
// Redirect the user to the same page, this time unauthenticated
header("Location: " . $_SERVER["REQUEST_URI"]);
但它似乎没有被正确存储,因为在重定向之后,$_SESSION["foo"]
它是空的。
谁能帮我这个?我在这里做一些“非法”的事情吗?
笔记:
如果我在重定向之前var_dump($_SESSION["foo"])
这样做,它确实会返回变量。
当然,我总是session_start()
在取回之前打电话$_SESSION["foo"]
。
另外,我不知道这是否有关系,但$foo
它是一个对象,所以我在做$foo = unserialize($_SESSION["foo"])
and $_SESSION["foo"] = serialize($foo);
。