-1

私はphpを初めて使用しますが、正常に機能する登録スクリプトをすでに作成しています。しかし問題は、送信ボタンを押してエラーを確認するたびに、新しいページに移動することです。

私の質問は、そのエラーを同じページに表示する方法です。

HTMLフォームに使用しているコード。

私が作ったエラーdivボックスにエラー表示が欲しい

<div id="RegistrationFormLayout">
 <h1>Registration Page</h1>
        <div id="ErrorMessage"></div>
          <form action="script/registration.php" method="post">
            <label for="Username">Username</label>
            <input type="text" name="Regi_username"> 

            <label for="FirstName">FirstName</label>
            <input type="text" name="Regi_Firstname"> 

            <label for="LastName">LastName</label>
            <input type="text" name="Regi_Lastname"> 

            <label for="EamilAddress">Regi_EmailAddres</label>
            <input type="text" name="Regi_EmailAddres"> 

            <label for="Password">Password</label>
            <input type="password" name="Regi_password"> 

            <button type="submit" value="Submit" class="Login_button">Login</button>
         </form>          
        </div>
4

1 に答える 1

0

私が正しく理解していれば、そこにフォーム検証エラーが必要です。これは非常に一般的なパターンであり、単純な解決策は、フォームのアクション属性を常にフォームを表示する同じページに設定することです。これにより、フォームを表示する前にフォーム処理を行うことができます ($_POST 値がある場合)。検証が成功した場合は、「次のステップ」ページにリダイレクト ヘッダーを送信します (header() を使用)。

基本的なパターンは次のようになります (非常に単純化された PHP で)

<?php

if(count($_POST)) {
  $errors = array();
  $username = trim($_POST['Regi_username']);
  if(empty($username)) {
    $errors[] = 'username is required';
  }

  if(count($errors) == 0) {
    header('Location: success.php');
    die();
  }
}
<ul class="errors">
  <?php foreach($errors as $error) { ?>
    <li><?php echo $error;?></li>
  <?php } ?>
</ul>
于 2012-11-13T06:54:39.537 に答える