注销后如何防止php返回页面? [关闭]

Posted

技术标签:

【中文标题】注销后如何防止php返回页面? [关闭]【英文标题】:How to prevent php going back page after log out? [closed] 【发布时间】:2015-02-10 08:20:03 【问题描述】:

我已为 3 级用户保护页面。级别 1--> 管理员 = datapegawai.php 级别 2--> 所有者 3级-->员工。当我退出后返回时,这个页面(datapegawai.php)总是返回。<?php session_start(); unset($_SESSION['user']); session_destroy();echo"<meta http-equiv='refresh'content='0; url=login.php'>";?>

http://pastebin.com/AvF0PmCk

【问题讨论】:

为什么不使用header("Location: login.php");?它更快更简单。 我试过了,还是不行。请查看pastebin.com/AvF0PmCk 【参考方案1】:

@Ayuktia:你正在破坏会话。所以当你按下回。浏览器显示缓存页面。做以下事情。

1) 登录后的页面,检查会话是否存在。如果不重定向到登录页面。

2) 使用标头告诉浏览器不要缓存需要身份验证的页面。

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

3) 使用标头永久重定向。

header("Location: login.php",TRUE,302); 
die();

【讨论】:

我应该把它放在哪里? 它应该在页面顶部。在将任何内容输出到浏览器之前,应小心放置标题。否则它不会工作 它不起作用.. :'( 您是否正在检查页面上需要身份验证的会话?此外,您应该告诉浏览器不要缓存这些需要登录的页面。因此,将第 1 点和第 2 点放在需要登录的页面上。创建一个logout.php。单击注销时,重定向到 logout.php。将代码放在第三点。所以从 logout.php 你将把用户重定向到登录页面 顺便问一下 /foo.php 是什么?【参考方案2】:

不要使用echo"&lt;meta....

改为使用

header("Location:MynewURL");

(也关闭后?>添加很多

<!-- dummy --> 

因为 IE 不能很好地识别小于一些 kb 的标题标签

【讨论】:

你添加了很多假人吗?显示什么错误? 不,我没有。我应该把虚拟页面放在哪里? 在 datapegawai.php 中关闭最后一个?> 解析错误:语法错误,第 9 行 C:\Users\Samsung_B9L\Documents\Xampp\htdocs\pegawai\datapegawai.php 中出现意外的 ' 抱歉之后,而不是之前

以上是关于注销后如何防止php返回页面? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

通过在 L5 中点击浏览器上的后退按钮来防止注销后再次登录?

如何防止使用中间件类在laravel中注销后访问访问的页面?

防止注销后的返回操作

注销后如何防止浏览器的后退按钮登录

防止用户在jsp中注销后返回[重复]

在我单击注销按钮之前,如何在 php 中保持会话? [复制]