提交到php的HTML表单。显示php响应

时间:2012-09-28 14:48:30

标签: php html

我正在尝试为我的网站实施“重置密码”页面。到目前为止,我有一个简单的页面,其中有一个表单供用户输入他们的电子邮件地址。提交表单会调用'requestpasswordreset.php',其中包括检查是否存在使用该电子邮件的用户,发送密码重置电子邮件等等。

<body>
<form name="input" action="requestpasswordreset.php" method="post">
    Email Address: <input type="text" name="email"> </br>
    <input type="submit" value="Submit"></form>
</body>

requestpasswordreset.php伪代码

if no user with email = $_POST['email']
    echo 'No user exists with this email';
else
   ...
   doStuff();
   echo 'Password reset email sent';

我想知道如何做到以下几点:

如果用户输入了无效的电子邮件地址,表单将保持可见状态,并显示错误消息。

如果请求成功,表单将被隐藏,并会显示一条说“成功”的消息。

在任何一种情况下,重定向到新页面似乎都是不必要/不好的做法?而不只是更新当前的。

4 个答案:

答案 0 :(得分:0)

如果出现错误,您只需输出相同的HTML,并在PHP脚本中添加错误消息。如果成功,您可以将它们重定向到其他位置,或者将它们保存在您认为合适的同一页面上。我可能会将它们带回登录表单,并添加一条成功消息,以便在您收到该电子邮件后轻松访问登录。

答案 1 :(得分:0)

为什么不尝试将表单提交到同一页面?然后

if (isset($_POST['email']) /** and user exists **/) {
  /** do whatever you need to do **/
} else {
  /** display the form **/
}

答案 2 :(得分:0)

重定向或以其他方式制作postback的做法并不错。您正在寻找的解决方案称为AJAX,两种解决方案同样可行。您可以使用javascript(可能jquery)查询服务器,然后隐藏表单/根据服务器响应给出错误消息。

如果这是您的问题,则无法在html和php中验证或发送没有回发的电子邮件。

答案 3 :(得分:-2)

你可以这样做:

在您的PHP代码上:

  

if(电子邮件错误)   回声 “window.location.href = 'yourformpage.php电子邮件=错了吗?'”   其他   doStuff();

并在您的表单页面中:

  

if(isset($ _ GET ['email'])AND $ _GET ['email'] =='wrong')

     

echo“显示错误消息”;