如何在PHP注销后不允许用户返回?

Ole*_*dia 7 php

我刚刚编写了一个PHP登录脚本,我想要完成的是当用户点击退出链接时,在他们注销后,无论点击浏览器的后退按钮,他们都无法访问该页面.

这是注销功能:

//Start the Session
session_start();
session_destroy();

header("location:login.php");
exit();
Run Code Online (Sandbox Code Playgroud)

我确实在所有页面上放置了以下代码,这似乎没有完成工作:

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
header ("Pragma: no-cache");

//Start the Session
session_start();
Run Code Online (Sandbox Code Playgroud)

有什么建议?

jmu*_*llo 8

您无法控制服务器上客户端后退按钮的工作方式.您可以使用客户端上的javascript销毁历史数据.

客户端可以完全忽略no-cache标头.


Óla*_*age 2

检查用户注销时会话全局是否仍设置为正确的值。

print_r($_SESSION);
Run Code Online (Sandbox Code Playgroud)

原因是您正在执行 session_destroy 然后进行标头重定向,发生的情况是您强制重定向并且会话的销毁不会以这种方式写入服务器。