我有一个指向另一个 php 页面的登录页面。这个 php 页面获取用户输入的用户名,将其存储为会话变量,然后重定向到 home.php(此代码在信息验证后运行)。
$username = $_POST['username'];
$update = mysql_query("UPDATE usertable SET loginStatus='Logged in' WHERE userName = '$username'");
session_start();
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $_POST['username'];
header("Location: home.php");
这将更新相应的列而不会出现问题。我将以下代码放在 home.php 页面中以显示每个用户的登录状态
session_start();
$username = $_SESSION['username'];
if(empty($_SESSION['username'])){
header("Location: login.php");
}
$result = mysql_query("SELECT * FROM usertable");
echo "Logged in as ". $_SESSION['username'];
echo "<br />";
while($row = mysql_fetch_array($result))
{
echo $row['userName'] . " " . $row['emailAddress'] . " " .$row['loginStatus'];
echo "<br />";
}
?>
<p><a href=logout.php>Click here to logout</a></p>
当用户单击注销链接时,它会将他们定向到以下 php 页面:
<?php
session_start();
$username = $_SESSION['username'];
$update1 = mysql_query("UPDATE usertable SET loginStatus='' WHERE userName = '$username'");
echo $username;
?>
<?php
session_destroy();
?>
<h1>You are now logged out</h1>
<p><a href=login.php>login</a></p>
这就是我的问题所在。MySQL 没有更新相应用户名的 loginStatus。我拥有的所有变量 ($username, $username1) 在我测试它们时都会打印出正确的信息。在注销页面的情况下,我知道 $_SESSION['username'] 正在存储正确的用户名,但我不知道为什么它不会更新数据库中的值。