そのため、ユーザーがログアウトした後も特定のセッション変数を保持したいと考えています。このような:
// 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"]
はnullであるため、適切に保存されていないようです。
誰でもこれで私を助けることができますか?私はここで「違法」なことをしていますか?
ノート:
var_dump($_SESSION["foo"])
リダイレクトの直前に行うと、変数が返されます。
session_start()
もちろん、取得する前に必ず呼び出します$_SESSION["foo"]
。
また、これが何か関係があるかどうかはわかりません$foo
が、オブジェクトなので、やってい$foo = unserialize($_SESSION["foo"])
ます$_SESSION["foo"] = serialize($foo);
。