2010-09-09 60 views
0

這是場景。用戶想要更改他的密碼。因此,他登錄並填寫他想要的新密碼並點擊提交。後端PHP檢查他的代碼並在MySQL數據庫中更新它。用戶被帶回到同一頁面(帶有表格),並通過位於頁面頂部的這一小段通知他的密碼已成功更改。通知用戶他的密碼已通過短信在同一頁面上更改(使用PHP或AJAX?)

是否有可能只使用PHP(不使用jQuery)?

道歉,如果我措辭不好我的問題。

回答

1

您也可以不使用AJAX。

您可以通過在會話中保留一些標誌來做到這一點。 當用戶的口令在後端改變,設置$_SESSION['passwordChanged'] = true.

在起始頁檢查$_SESSION['passwordChanged']是否設置爲TRUE如果你想要這個 則顯示你的passwordd改變一個DIV和復位會話變量$_SESSION['passwordChanged'] = false;

+0

謝謝Maulik。這是一個很好的解決方案 – dave 2010-09-10 07:22:19

1

是的,它可以通過使用AJAX。如果PHP後端返回成功,則更新div(或其他任何元素)以顯示成功的密碼更改。

+1

謝謝艾倫。我希望在沒有Ajax的情況下做到這一點。 – dave 2010-09-10 07:23:48

+0

不客氣,戴夫。 – 2010-09-10 07:24:57

1

無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>'; 
} 

然後,在隱藏信息頁面加載和做你想做的事情,無論是消息消失,還是丟棄消息等。

+0

謝謝馬丁。這是一個很好的解決方案。 – dave 2010-09-10 07:38:08