這是場景。用戶想要更改他的密碼。因此,他登錄並填寫他想要的新密碼並點擊提交。後端PHP檢查他的代碼並在MySQL數據庫中更新它。用戶被帶回到同一頁面(帶有表格),並通過位於頁面頂部的這一小段通知他的密碼已成功更改。通知用戶他的密碼已通過短信在同一頁面上更改(使用PHP或AJAX?)
是否有可能只使用PHP(不使用jQuery)?
道歉,如果我措辭不好我的問題。
這是場景。用戶想要更改他的密碼。因此,他登錄並填寫他想要的新密碼並點擊提交。後端PHP檢查他的代碼並在MySQL數據庫中更新它。用戶被帶回到同一頁面(帶有表格),並通過位於頁面頂部的這一小段通知他的密碼已成功更改。通知用戶他的密碼已通過短信在同一頁面上更改(使用PHP或AJAX?)
是否有可能只使用PHP(不使用jQuery)?
道歉,如果我措辭不好我的問題。
您也可以不使用AJAX。
您可以通過在會話中保留一些標誌來做到這一點。 當用戶的口令在後端改變,設置$_SESSION['passwordChanged'] = true.
在起始頁檢查$_SESSION['passwordChanged']
是否設置爲TRUE如果你想要這個 則顯示你的passwordd改變一個DIV和復位會話變量$_SESSION['passwordChanged'] = false;
是的,它可以通過使用AJAX。如果PHP後端返回成功,則更新div
(或其他任何元素)以顯示成功的密碼更改。
謝謝艾倫。我希望在沒有Ajax的情況下做到這一點。 – dave 2010-09-10 07:23:48
不客氣,戴夫。 – 2010-09-10 07:24:57
無JavaScript工作,然後設置會話變量。因此,在你的邏輯,你會(僞代碼):
$sql = "UPDATE user SET password = ?";
$db->prepare($sql);
$db->execute(array($_POST['password'])); // password would also be hashed, presumebly
if ($db->rowCount()==1) {
$_SESSION['password_changed'] = true;
}
然後在頁面上您將用戶重定向到,這頭:使用JavaScript
if ($_SESSION['password_changed']) {
$message = "";
unset($_SESSION['password_changed']); // no longer needed
}
if (strlen($message) > 0) {
echo '<p class="message">' . $message . '</p>';
}
然後,在隱藏信息頁面加載和做你想做的事情,無論是消息消失,還是丟棄消息等。
謝謝馬丁。這是一個很好的解決方案。 – dave 2010-09-10 07:38:08
謝謝Maulik。這是一個很好的解決方案 – dave 2010-09-10 07:22:19