代码之家  ›  专栏  ›  技术社区  ›  Yeo Bryan

PHP验证未在特定位置运行

  •  0
  • Yeo Bryan  · 技术社区  · 7 年前
        <?php
    include 'header.inc.php ';
    ?>
    
    <?php 
    $firstNameError = '';
    $emailError='';
    $lastNameError='';
    $passwordError1='';
    $passwordError2='';
    ?>
    
    <?php 
    if(isset($_POST['submit']))
    {
    
      $firstName = ($_POST["firstname"]);
      if (empty($firstName))
      {
          $firstNameError = "<span style='color: red';> Name is required </span>";
          //echo $nameError;
      }
      //else
      //{
         // echo "success!";
      //}
      $lastName = ($_POST["lastname"]);
      if (empty($lastName))
      {
          $lastNameError = "<span style='color: red';> Last Name is required </span>";
          //echo $nameError;
      }
        $email = ($_POST["email"]);
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
      {
          $emailError = "<span style='color: red';> Proper Email account is required </span>";
          //echo $nameError;
      }
      $password1=($_POST["password1"]);
      if(mb_strlen($password1) <8 || preg_match('/[^0-9A-Za-z]/', $password1)) // [^] sign means complement of all those number and alpha, so if password match with something not alpha or number enter the if condition
        {
              $passwordError1= "<span style='color: red';> ONLY CAN USE ALPHABETS OR NUMBERS AND MINIMUM LENGTH Of 8 CHARACTERS </span>";
        }
      $password2=($_POST["password2"]);
      if ($password2 !== $password1)
      {
          $passwordError2="<span style='color: red';> Mismatching passwords! </span>";
      }
    }
    
    ?>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <link href="css/newcss.css" rel="stylesheet" type="text/css">
        <script src="register.js"></script>
    </head>
    
    <div class="container-fluid">
        <div class="row">
            <div class="col-xs-12 col-sm-4">
                <div class="pull-left square">
                    <p> Account </p>
                    <p> Login </p>
                    <p> Register </p>
                    <p> Recover Password </p>
                </div>
            </div>
            <div class="col-sm-8">
                  <div class="">
                      <h3> Register Account</h3>
                      <p> If you already have an account with us, please login at the login page </p>
                      <form action= "register.php" method="post" id="test" onsubmit="return checks()" > 
                          <label>First name:</label> <input type="text" id="name" name="firstname" title="enter your name" value="<?php echo isset($_POST["firstname"]) ? $_POST["firstname"] : ''; ?>"> <?php  echo $firstNameError ?>
                          <br>
                          <label>Last Name:</label>  <input name="lastname" id="lastname" type="text" > <?php  echo $lastNameError ?>
                          <br>
                          <label>Email:</label>   <input name="email" id="email" type="text" > <?php  echo $emailError ?>
                          <br>
                          <label>Password:</label>   <input type="password" name="password1"  id="pass1"  title="8 characters minimum"> <?php  echo $passwordError1 ?>
                          <br>
                          <label>Password Confirm:</label> <input type="password" name="password2"  id="pass2"  title="passwords dont match"><?php  echo $passwordError2 ?>
                          <br>
                          <label class="align">
                              <input type="checkbox" checked="checked" name="remember" required> Remember me
                          </label>
                          <br>
                          <input class="align" id="submit" name = "submit" type="submit" value="submit">
                      </form>
                  </div>
            </div>    
        </div>
    
    </div>
    
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script>
    <!--<script src="js/bootstrap.min.js"></script>-->
    <!--<script src="register.js"></script>-->
    
    
    
    <?php
    include 'footer.inc.php ';
    ?>
    

    此处附加的代码运行正常,但当我尝试移动PHP验证代码时,主要是从is\u集($\u post[提交])开始,然后再移动到HTML文档底部的页脚PHP文件所在区域,验证将不再运行。请向我解释为什么会这样?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ingus    7 年前

    我不知道这是不是你的意思,但是。。在您的情况下,我会将所有错误堆叠在一起,如果有任何错误,请停止,否则请执行您必须执行的操作:

    $erors='';
    
    if(isset($_POST['submit'])){
    
        $firstName = ($_POST["firstname"]);
        if (empty($firstName)){
          $erors .= "<span style='color: red';> Name is required </span>";
        }
    
        $lastName = ($_POST["lastname"]);
        if (empty($lastName)){
            $erors . = "<span style='color: red';> Last Name is required </span>";
        }
    
        $email = ($_POST["email"]);
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
            $erors . = "<span style='color: red';> Proper Email account is required </span>";
        }
    
        $password1=($_POST["password1"]);
        if(mb_strlen($password1) <8 || preg_match('/[^0-9A-Za-z]/', $password1)){
            $erors .= "<span style='color: red';> ONLY CAN USE ALPHABETS OR NUMBERS AND MINIMUM LENGTH Of 8 CHARACTERS </span>";
        }
    
        $password2=($_POST["password2"]);
        if ($password2 !== $password1){
            $erors .="<span style='color: red';> Mismatching passwords! </span>";
        }
    
        if($erors){
            echo $erors;
        } else{
            //do stuff
        }
    }
    
    推荐文章