销毁问题 - 退出结束会议

时间:2014-10-08 23:46:04

标签: php session

我的会话设置如下:

<?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');
}
?>

1 个答案:

答案 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();
?>