结束会议我有一个会话建立这样的:问题 - 关于注销
<?php
session_start();
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$email = $_POST['email'];
$pass = $_POST['pass'];
$query = "SELECT * FROM tempusers WHERE user='$email' AND pass='$pass'";
$result = mysqli_query($con,$query)or die(mysqli_error());
$num_row = mysqli_num_rows($result);
$row=mysqli_fetch_assoc($result);
if($num_row >=1) {
echo 'true';
$_SESSION['uName'] = $row['uName'];
}
else{
echo 'false';
}
?>
,在我logout.php我有
<?php
session_start();
session_unset();
unset($_SESSION['uName']);
session_destroy();
header("Location:index.php");
?>
但没有的session_unset();
,unset()
和session_destroy();
似乎不工作,因为进入页面后,我仍然可以使用浏览器“后退”按钮并返回到受限制的页面!除了header()
不会将页面更改为index.php
您能否让我知道我在做什么错误以及如何修复它?
基本上,我在受限页面注销链接是这样
<a href="logout.php" >Logout</a>
感谢
更新: 这里是会议的代码,我在
受限页面顶部<?php
session_start();
if(empty($_SESSION['uName'])){
header('Location: login.php');
}
?>
如果你回到它进入数据库并授权你的页面(假定POST被重新发送),那么IF将为TRUE,并且会话再次设置。 – James 2014-10-08 23:52:58
谢谢詹姆斯,但我没有明确你的意思? – Suffii 2014-10-08 23:56:39
您的问题并不完全清楚您的登录流程,我的意思是:您将POST表单数据写入上面的脚本,您以凭据正确登录,会话已设置,现在登录到下一页,单击注销,您已经注销,您点击后,POST数据仍然被设置,并且检查数据库中的数据再次返回TRUE(如POST数据之前所做的那样),您的会话将再次创建。 - 如果在logout.php文件结尾回显你的会话(并在echo之后使用'exit()'),你会得到什么?它仍然设置? – James 2014-10-09 00:01:12