会话检查未按预期执行

时间:2016-02-20 19:37:25

标签: php session

我有一个include来检查会话是否在所有需要登录才能访问的页面上处于活动状态。 我的登录页面工作正常,我可以访问该页面,并在登录页面的会话中显示他们的用户名,但是当我退出并尝试使用URL访问登录页面时,它会让我在不应该的时候返回。 / p>

以下是每个登录页面顶部的安全性包含

container

这里也是退出页面

 <?php

 session_start();

 include('includes/dbconx.php'); //connects to database
 $user_check=$_SESSION['login_user']; //assigns session variable to local variable

 $ses_sql=mysqli_query($con, "select uname from login where uname='$user_check'"); //gets username from database

 $row=mysqli_fetch_array($ses_sql, MYSQLI_ASSOC); 

 $login_session=$row['uname']; //assigns username fromdbase to local variable

 echo $login_session; //echo for testing
 echo $user_check; //echo for testing

 if( $login_session === $user_check) //compares session variable to assigned variable from dbase
 {
  header("loacation: adminPage.php"); //if they match redirect to admin logged in page
 }
 else{ 
 header("location: adminLogin.php"); //else redirect back to login
  }  

 ?>

1 个答案:

答案 0 :(得分:1)

您需要在代码中进行以下更改: -

在离开登录页面的每个页面上: -

<?php
session_start();
if(isset($_SESSION["login_user"])){
   // rest of your complete code including security
}else{
  //redirect to login page or any other page where you want.
}
?>

在退出页面中: -

<?php
 session_start(); //starts session
 session_destroy();  //destroy session
 header("Location: index.php"); //redirects to home page/
 ?>