2011-12-02 71 views
0

我已创建登录表单。它可以正常工作,但如果用户在注销后单击返回按钮,它会返回到登录页面。 当我试图阻止它时,索引页停止工作。它显示问题加载页面错误。如何避免用户进入登录会话,即使通过点击退出登录后?

我已经在我的索引页面中完成了此操作,以避免用户无法返回登录会话,但现在索引页面本身不起作用。

if (!isset($_SESSION['user'])) { 
    header('Location:index.php'); 
} 

logout.php:

session_start();#This will start the session 
session_unset(); #Session_unset and Session_destroy 
session_destroy();#Will remove all sessions. 

header("location:index.php");#This code will sen du back to the index page 

一旦用户登录的用户登录到该主页。我添加了这样的会话:

session_start(); 

$user = $_SESSION['user']; 

请纠正我错在哪里。我现在面临的问题是:

  1. ,使我的索引页显示
  2. 避免用户要回自己的登录会话注销

回答

1

这可以帮助那些将寻找相同问题的人..!

为了避免后退按钮进入自己的首页,您的会话密钥改变之后登录out.paste下面的代码后和可变

<? 

session_start(); 

$user = $_SESSION['user']; 

if ($_SESSION['user'] == ""){ 

    header('LOCATION:index.php'); 

} 
?> 

这将转到主页作为浏览器重定向,然后如果会话为空,主页将直接返回索引页面(请注意,一旦用户单击注销,会话将被销毁)

2

Follow the Post/Redirect/Get pattern.

邮政/重定向后/ Get(PRG)是网络开发者 的常见设计模式,可帮助避免某些重复的表单提交,并允许用户代理 表现更多的int有用的书签和刷新按钮。

当web表单通过HTTP POST请求提交给服务器, 试图刷新某些 用户代理服务器的响应可导致原始HTTP POST请求 的内容重新提交一个网络用户,可能会导致不希望的结果,例如 重复购买网络。

有用的阅读次数:


你也可以做最简单的就是把一个条件在header.php中(或类似文件共享):

session_start(); // on top of the scrit 
................ 
............... 

if (! isset($_SESSION['yourKey'])){ 
    header('LOCATION: notLoggedPage.php'); 
    exit; 
} 

注:确保把session_start()在脚本的开始,只要你有你的脚本会话相关的功能。

0

如果用户点击“返回”按钮,浏览器将不会重新加载页面,只显示它。

您应该做些什么来禁用用户首先登录的页面中的功能。

相关问题