我有一個登錄頁面指向另一個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