我完全失去了單詞。SESSION變量在摧毀了其餘的頁面後不能從頁面傳遞
我允許管理員在過程中遇到錯誤時重置其註冊。理論上,下面的代碼應該像這樣運行:
頁面已到達,$ adminvalidated根據會話數據設置。 $ _SESSION數組被清除;在客戶端清除cookie;會話標識被注入,會話被銷燬。然後會話重新啓動,並且之前提到的變量被放回到Session中。
下面包含的「echo」語句工作,但當我重定向到另一個頁面(註釋如下)時,會話變量不會繼續。
是的我也開始了後續頁面的會話。
<?php
session_start();
ob_start();
if($_SERVER['SERVER_PORT'] == 80) {
header('Location:https://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]);
die();
}
$adminvalidated = $_SESSION['ADMINVALIDATED'];
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_regenerate_id(true);
session_destroy();
session_start();
$_SESSION['ADMINVALIDATED'] = $adminvalidated;
echo $_SESSION['ADMINVALIDATED'];
/*
header("Location: ../a.php");
exit;*/
?>
這不會導致錯誤。請使用上面的代碼;有用。回聲確實顯示了我請求的數據;但是頁面到頁面不。 – JM4 2010-10-07 18:35:20
嘗試添加:'error_reporting(-1);'到你的php文件的頂部,然後看看你是否能看到通知。您不需要銷燬會話,只需清除所有當前變量,然後設置所需的任何新變量。 – rojoca 2010-10-07 18:39:19
感謝您的建議 - 我最初設計的方式,但聽說它不是'傻瓜證明'session_destroy – JM4 2010-10-07 18:40:29