繁体   English   中英

PHP验证未在特定位置运行

[英]PHP validation not running at specific position

    <?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_set($ _ post [submit])移至HTML文档底部的页脚php文件所在的区域上方包括验证不再运行。 请向我解释为什么会这样吗?

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

$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
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM