我的会话设置如下:
<?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
之外,您能否告诉我我做错了什么以及如何解决?
基本上,我在Restricted页面中有一个Log out Link,就像这样
<a href="logout.php" >Logout</a>
由于
更新: 这是我在限制页面顶部的会话代码
<?php
session_start();
if(empty($_SESSION['uName'])){
header('Location: login.php');
}
?>
答案 0 :(得分:0)
尝试重新生成会话ID并销毁所有数据。
<?php
session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(), '', 0, '/');
session_regenerate_id(true);
header("Location:index.php");
exit();
?>