如何在没有js jq的情况下验证表单

时间:2019-12-26 11:03:00

标签: php forms validation

你好,我确实有问题,我不使用js或jq只是头部中的自举链接,如果表单无效,则应该弹出,但是由于某种原因,那是我的问题。在我的其他代码上,它是有效的但是现在它不会在这里,我不知道为什么,我不会张贴这个,但是每天都在这样的琐事上苦苦挣扎:(不要给我缺点,我不要要求加分,但都不是-我会很感激hlp!

  *Signup back*
  <?php 
   if(isset($_POST['signup-submit'])){
    require 'db.inc.php';
    $error = false; 

    $username = $_POST['uid'];
    $email = $_POST['mail'];
    $pwd = $_POST['pwd'];
    $pwdrpt = $_POST['pwd_repeat'];
    if (empty($username) || empty($email) || empty($pwd) || empty($pwdrpt)) {
        header("location: ../signup.php?error=emptyfields&uid=".$username."&mail=".$email);
        exit();
      }   
    // else if (!filter_var($email, FILTER_VALIDATE_EMAIL) && !preg_match("/^[a-zA-Z0-9]*$/", $username)){
    //     header("location: ../signup.php?error=invalidmail&uid");
    //     exit();
     // }
    elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)){
        $error = true;
          $errorEmail = 'Please input a valid Email address';
        header("location: ../signup.php?error=invalidmail&uid=".$username);
        exit();
      } 
    elseif (!preg_match("/^[a-zA-Z0-9]*$/", $username)){
        $error = true;
        $errorUsername = 'Please input username';
        header("location: ../signup.php?error=invaliduid&mail=".$email);
        exit();
      } 



       *SignUp front*
       <form action="includes/signup.inc.php" method="post" novalidate>
      <h3  align="center"><strong>Sign Up<strong></h3> 

      <!-- <?php 
        if (isset($_GET['error'])) {
          if ($_GET['error'] == 'invalidmail') {
            echo '<p class="signuperror">Enter valid email address!</p>';
          }
        }
      ?> -->

      <input class="form-control" type="text" placeholder="Username" name="uid">
      <div><span class="text-danger"><?php if(isset($errorUsername)) echo $errorUsername; ?></span> 
        </div>
        <br>
      <input class="form-control" type="text" placeholder="Enter Email" name="mail"> 
      <div><span class="text-danger"><?php if(isset($errorEmail)) echo $errorEmail; ?></span></div>    

1 个答案:

答案 0 :(得分:0)

尝试

<?php 
if(isset($_POST['signup-submit'])){
$error = false; 

$username = $_POST['uid'];
$email = $_POST['mail'];

if (empty($username) || empty($email)) {
    header("location: index1.php?error=emptyfields");
    exit();
  }   
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)){
    $error = true;
      $errorEmail = 'Please input a valid Email address';
    header("location: index1.php?error=invalidmail");
    exit();
  } 
elseif (!preg_match("/^[a-zA-Z0-9]*$/", $username)){
    $error = true;
    $errorUsername = 'Please input username';
    header("location: index1.php?error=invaliduid");
    exit();
  } 
}


   ?>
   <form action="" method="post" novalidate>
  <h3  align="center"><strong>Sign Up<strong></h3> 

  <?php 
    if (isset($_GET['error'])) {
      if ($_GET['error'] == 'invalidmail') {
        echo '<p class="signuperror">Enter valid email address!</p>';
      }
    }
  ?> 

  <input class="form-control" type="text" placeholder="Username" name="uid">
  <div><span class="text-danger"><?php if(isset($errorUsername)) echo $errorUsername; ?></span> 
    </div>
    <br>
  <input class="form-control" type="text" placeholder="Enter Email" name="mail"> 
  <div><span class="text-danger"><?php if(isset($errorEmail)) echo $errorEmail; ?></span></div>   
  <input type="submit" name="signup-submit" id="signup-submit">
  </form>