我有一个登录页面,然后我建立了一个名为logout的页面链接,它包含以下代码:
logout.php
<?php
session_unset();
session_destroy();
header("Location:");
?>
然而,当我退出然后按下后退按钮时它会把我带回来。如何更改它以便在显示上一页之前要求您再次登录?
答案 0 :(得分:3)
在您要返回的页面(或任何相关页面)上,您需要检查用户是否已登录(即具有有效会话),如果没有,则将其重定向到登录页面。
此外,您可以在此特定代码段中添加一些禁用缓存标头。
答案 1 :(得分:1)
您尚未设置任何重定向到的位置。
应该是:
header("Location:http://example.com/login.php");
这样,当您注销时,它会将浏览器重定向到login.php。
修改强>
此外,将会话验证条件添加到主页也是有帮助的。
Somenthing like:
if(!isset($_SESSION))
{
header("Location:http://example.com/login.php");
}
答案 2 :(得分:1)
在加载每个页面(或至少每个PRIVATE / RESERVED页面)之前,您应检查$ _SESSION变量以确定用户是否合法登录。
如果您不执行此检查,则每个人都可以访问您网站的每个页面(如果他们有直接链接)。他们可能会看到页面的破坏版本,但仍然会向未登录的用户授予访问权限。
答案 3 :(得分:1)
<?php
session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
?>
来源:Manual
答案 4 :(得分:1)
如果用户已登录
,请尝试检查每个页面if (!$_SESSION['logged_in']) { //you would have to make $_SESSION['logged_in'] when they login
header('location: login.php');
}
如果没有设置$ _SESSION ['logged_in'],请将它们重定向到登录页面。
您还需要进行其他检查才能确保安全。