任何人都可以帮助我解决登录会话不起作用的问题


Can anyone help me around for login session not working

我是 php 的新手。

我需要在项目中使用其他用户登录,但它不起作用。

一旦我注销并返回浏览器,上一个用户的窗口将打开。

索引.php代码

<?php
      if (isset($_POST['submit'])) {
         $username = $_POST['username'];
         $password = $_POST['password'];
            if (empty($username) or empty($password)) {
               $message = "You can't leave empty fields";
            }
            else {
               $sql = mysql_query("SELECT * FROM `department` WHERE username='".$username."' AND password='".$password."'");
               $login_check = mysql_num_rows($sql);
               if($login_check > 0){ 
                  while($row = mysql_fetch_array($sql)){ 
                     // Get member ID into a session variable
                     $id = $row["ID"];   
                     $_SESSION['ID'] = $id;
                     // Get member username into a session variable
                     $username = $row["username"];   
                     $_SESSION['username'] = $username;
                     // Update last_log_date field for this member now
                     //mysql_query("UPDATE members SET lastlogin=now() WHERE id='$id'"); 
                     // Print success message here if all went well then exit the script
                     header("location: division.php?ID=$id"); 
                     exit();
                  } // close while
               } 
                           }
                     }
   ?>

分部.php代码

<?php
session_start();
$_SESSION["ID"];
$_SESSION["username"];

if (isset($_SESSION['ID'])) {
   // Put stored session variables into local php variable
    $userid = $_SESSION['ID'];
    $username = $_SESSION['username'];
   $id=$_GET['ID'];
}
?>
<?php
$id = $_GET['ID'];
if ($id == "") {
   echo "Missing Data to Run";
   exit();
}
include_once "php/connect.php";
$sql = mysql_query("SELECT * FROM department WHERE ID='$id' LIMIT 1");
$count = mysql_num_rows($sql);
if ($count > 1) {
   echo "There is no user with that id here.";
   exit();   
}
while($row = mysql_fetch_array($sql)){
   $id=$row['ID'];
$department = $row["Department"];
$name= $row["name"];
}
?>

会话 ID 和用户名正在更新,但问题是当我单击顶部的注销按钮时,它将重定向到主索引.html。但是每当我单击浏览器的后退按钮时,它都会打开登录的前一个用户的页面

它不应该这样做对吗?

logout.php code

session_destroy();
header('location:../index.php') ;
索引

.php文件中缺少session_start();

确保在每个文件的顶部添加session_start();

首先,我将注销时将$_SESSION变量设置为空白。

$_SESSION = Array();

然后,我会在每个页面的顶部放置一个检查session_start(),以检查是否设置了会话 ID。如果没有,请重定向到登录页面或其他页面。

if (!isset($_SESSION['id']) { // redirect to another page else show content

另一方面,您应该认真研究密码加密方法,而不是将它们以人类可读的格式存储在数据库中。

代码乍一看不错。您是否尝试过刷新页面?我的猜测是,您看到的是浏览器的缓存副本,一旦重新加载,它就会按预期注销。