你好,当我按下注销按钮时,我正在尝试注销会话,然后它正在注销并重定向到登录页面;但when click back in browser that page is loading with loign menu on top.
我在每个页面上都写了一个代码,好像会话不可用一样,重定向到登录页面。
这是我的session_delete:注销代码
elseif(isset($_GET['type']) && $_GET['type']== "logout" )
{
if (!isset($_SESSION['id'])) {
header('location:index.php');
} else {
session_destroy();
$_SESSION = array();
header('location:index.php');
}
}
这是我在所有页面中提到的代码:
session_start();
include_once('includes/config.php');
if(!isset($_SESSION['id'])) {
header('location:login.php');
}
所以我的问题是完全注销,如果按下返回,它不应该加载,必须重定向到登录页面。
<?php
session_start();
if($_SESSION['id']){
unset($_SESSION['id']); // destroys the specified session.
}
header('Location:index.php'); //redirect to preferred page after unset the session
?>
session_destroy()
通过此功能,您可以在浏览器中销毁所有会话。如果你使用php,你应该写:
ob_start ();
session_start();
通过此操作,您的缓冲区也会刷新并重新启动会话。试试看。
创建一个类似signout.php的页面,并设置该页面的signout按钮链接。
示例
<a href="signout.php">Signout</a>
为signout.php页面添加以下代码。
session_start(); #Start new or resume existing session
#session_unset($_SESSION['key']); #Free specific session variable if you want, OR
session_destroy(); #Destroys all data registered to a session
header('location:login.php'); #Redirect to login page after logout
这应该对你有用!
尝试以下方式:
session_start();
unset($_SESSION["id"]);
session_destroy();
header('location:index');