0

ウェブサイトに「パスワードのリセット」ページを実装しようとしています。これまでのところ、ユーザーが自分のメールアドレスを入力するためのフォームを備えた簡単なページがあります。フォームを送信すると、「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

4 に答える 4

0

リダイレクトすること、または他の方法でポストバックを作成することは、悪い習慣ではありません。あなたが探している解決策はAJAXと呼ばれ、両方の解決策は等しく実行可能です。javascript(およびおそらくjquery)を使用してサーバーにクエリを実行し、フォームを非表示にするか、サーバーの応答に応じてエラーメッセージを表示することができます。

それがあなたの質問である場合、htmlとphpでのみポストバックなしで電子メールを検証または送信することはできません。

于 2012-09-28T14:53:32.567 に答える
0

エラーが発生した場合は、PHP スクリプトから追加されたエラー メッセージを含む同じ HTML を出力するだけです。成功した場合は、それらを別の場所にリダイレクトするか、適切と思われる同じページに保持することができます。私はおそらく彼らをログイン フォームに戻して、成功メッセージを個人的に追加して、彼らがあなたからメールを受け取ったら簡単にログインできるようにします。

于 2012-09-28T14:51:24.443 に答える
0

同じページにフォームを送信してみませんか? それで

if (isset($_POST['email']) /** and user exists **/) {
  /** do whatever you need to do **/
} else {
  /** display the form **/
}
于 2012-09-28T14:51:47.577 に答える
-2

あなたはそのような何かをすることができます:

あなたのphpコードで:

if(メールが間違っています)echo "window.location.href ='yourformpage.php?email =wrong'"; そうでなければdoStuff();

そしてあなたのフォームページで:

if(isset($ _ GET ['email'])AND $ _GET ['email'] =='間違った')

echo"エラーメッセージを表示";

于 2012-09-28T14:54:17.203 に答える