我有一个登录页面指向另一个php页面。这个PHP页面接受用户输入的用户名,将其存储为会话变量,然后重定向到home.php(在验证信息后运行此代码)。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']正在存储正确的用户名,但我无法弄清楚为什么它不会更新数据库中的值。
我看到你没有检查更新查询的结果;也许它是'假'?你可以回应查询,这看起来很奇怪吗? – 2013-03-11 15:46:15
注销页面中的数据库conexion在哪里? – EmCo 2013-03-11 15:50:39
从注销页面回显$ update1不会返回任何内容,如果这是您的意思? – TaylorSmolik 2013-03-11 15:51:13