【问题标题】:How to prevent php going back page after log out? [closed]注销后如何防止php返回页面? [关闭]
【发布时间】: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

标签: php html mysql session logout


【解决方案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 中出现意外的 '
  • 抱歉之后,而不是之前
猜你喜欢
  • 2023-02-21
  • 1970-01-01
  • 2012-05-17
  • 2011-10-02
  • 2011-05-14
  • 2019-12-19
  • 2020-09-24
  • 1970-01-01
  • 2011-03-28
相关资源
最近更新 更多