我的会话脚本出现问题。我在每个需要会话的文件中包含这个文件调用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");
?>
任何人都可以帮我修复它,以便当用户点击退出链接时,他们无法返回到成员区域并再次登录。
答案 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?