-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

如果我理解正确,您希望那里出现表单验证错误。这是一种非常常见的模式,简单的解决方案是始终将表单的 action 属性设置为显示表单的同一页面。这允许您在尝试显示表单之前进行表单处理(如果有 $_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 回答