PHP会话:后退按钮问题

时间:2013-05-11 00:08:03

标签: php session logout

我的会话脚本出现问题。我在每个需要会话的文件中包含这个文件调用functions.php。

<?php

session_start(); {

  if(isset($_SESSION['username']) && !empty($_SESSION['username'])) {
    return true;
    } else {
    return false;
    }

  }

?>

然后我使用此文件注销。叫做logout.php

<?php
include('functions.php');
session_destroy();
// We redirect them to the login page
header("Location: homepage.php");
die("Redirecting to: homepage.php");
?>

任何人都可以帮我修复它,以便当用户点击退出链接时,他们无法返回到成员区域并再次登录。

2 个答案:

答案 0 :(得分:1)

好的,我认为问题是这个, 您只需在logout.php中销毁会话,但不清除会话变量。请查看documentation

在您的情况下发生的情况是,每当您返回主页时,您重新启动会话,因此您将能够访问$_SESSION['username'],因为您没有清除变量并且您已登录。

您的问题的解决方案是

<?php
include('functions.php');
session_unset(); // need to be called before session_destroy()
session_destroy();
// We redirect them to the login page
header("Location: homepage.php");
die("Redirecting to: homepage.php");
?>

或者您只需清除logout.php脚本中的$_SESSION['username'],您根本不需要销毁会话。

希望这有帮助

答案 1 :(得分:0)

很可能是浏览器缓存显示页面,如果您注销,清除缓存然后按回来它是否仍然这样做?

我找到了一个可以帮助您的上一个问题: Stopping the back button from exposing secure pages?