我意识到之前已经问过这个问题,但我已经解决了之前的问题无济于事。
当我退出并终止会话时,我没有收到错误,只是一个空白页面。会话终止但没有重定向:(
这是注销的包含
<?php
// Initialize the session.
session_start();
// Unset all of the session variables.
$_SESSION = array();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
if(PHP_SESSION_NONE === true){
//i added this conditional statement as a last ditch, there was no if statement to begin with just a simple redirect, neither work.
header("Locaction: index.php");
}
?>
这是我的表单代码。
<form action="endSession.php" method="post" id="end_session">
<button type="submit" name="end_session" id="end_button">Logout</button>
</form>
答案 0 :(得分:2)
标题中拼写错误。它是Location
而非Locaction
。
应该是:header("Location: index.php");
答案 1 :(得分:2)
PHP_SESSION_NONE只是一个常量。
您必须检查会话状态。
if (session_status() === PHP_SESSION_NONE)
答案 2 :(得分:2)
你拼错了Location
:
//Your spelling
header("Locaction: index.php");
//Correct spelling
header("Location: index.php");
另外,据我所见,PHP_SESSION_NONE
使用不当。它是session_status()
的返回值,因此您应该像这样使用它:
if(session_status() === PHP_SESSION_NONE){ //...
虽然更好的做法是:
if(session_status() !== PHP_SESSION_ACTIVE){ //...
答案 3 :(得分:1)
您已将Location
键入Locaction
。
请检查您的错误消息。您可以参考这篇文章,了解如何检查错误消息:How to get useful error messages in PHP?。
或者,您可以尝试使用在线语法检查器:http://phpcodechecker.com,但在服务器中启用它仍然是最佳方式。