2010-09-09 39 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

相关问题