【发布时间】:2011-09-19 14:58:46
【问题描述】:
我有这个文件
安全.php
session_start();
if(empty($_SESSION['u_name'])) {
header("Location:emprego.php");
}
if(isset($_GET['logout'])) {
session_destroy();
header("Location:emprego.php");
}
$name = $_SESSION['u_name'];
?>
<li><?php echo "<a href='emprego.php?logout' id='D'>Logout</a>";?></li>
基本上,如果我注销,我将被重定向到 emprego.php。但是如果我点击后页按钮(浏览器中的箭头),我可以查看相同的页面(secure.php)。
我的问题是,为什么?
谢谢
【问题讨论】:
-
您是否检查过您的 php.ini 以查看是否有会话自动启动?我想这是你的问题。
-
您确定您查看的不是页面的缓存版本吗?此外,在任何重定向后使用 exit(),否则 PHP 会继续执行页面,如果您的浏览器不跟随位置标头,它将显示内容。
-
登出后可以在页面上做任何事情吗?可能只是缓存错误,这意味着他们可以查看该页面,因为它是从本地历史记录中加载的。在这种情况下,他们应该无法从那里做任何事情,尝试更改页面会给您带来会话错误(假设您在允许用户执行操作之前检查会话)。
-
后退页按钮我认为是指浏览器按钮。我认为您是从浏览器缓存而不是服务器获取页面。所以点击刷新看看你的会话是否有效。
-
我清除了缓存但页面仍然打开