[英]Can anyone help me around for login session not working
我是php新手。
我需要在项目中以其他用户身份登录,但无法正常工作。
我注销并返回浏览器后,将打开前一个用户的窗口。
index.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
}
}
}
?>
division.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和用户名正在更新,但是问题是当我单击顶部的注销按钮时,它将重定向到主index.html。 但是,每当我单击浏览器的后退按钮时,它就会打开已登录的上一个用户页面
它不应该这样做吗?
logout.php code
session_destroy();
header('location:../index.php') ;
session_start();
在index.php文件中丢失。
确保您将添加session_start();
在每个文件的顶部。
乍一看,该代码看起来不错。 您是否尝试过刷新页面? 我的猜测是,您看到的是浏览器的缓存副本,一旦您重新加载,副本将按预期退出。
首先,我将$_SESSION
变量在注销时设置为空白。
$_SESSION = Array();
然后,我将在session_start()
之后的每个页面的顶部进行检查,以检查是否设置了会话ID。 如果不是,请重定向到登录页面或其他页面。
if (!isset($_SESSION['id']) { // redirect to another page else show content
另一方面,您应该认真考虑密码加密方法,而不是以人类可读的格式将其存储在数据库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.