-4

我正在尝试制作一个测试 PHP 登录页面,该页面测试用户是否输入了电子邮件和密码,然后重定向到另一个页面。我使用了一段预编码的登录页面(下面的 HTML 部分),其中有一个用于电子邮件和密码的表单。

               <form action = "" method = "post">
                  <label>Mail:</label><br/>
                  <input type="email" placeholder="Enter your email"><br><br>
                  <label>Password:</label><input type =   "password" name = "password" class = "box" /><br/><br />
                  <input type = "submit" value = " Ok "/><br />
                  <button onclick="location.href='http://www.google.com'" type="button">Ok</button>
               </form>

是否可以检查输入的值是否是电子邮件?

4

2 回答 2

1

你可以这样做

将表单值发布到服务器页面后

仅使用 if 条件和模式匹配(用于电子邮件)

$password= test_input($_POST["password"]);
if(empty($password)){
$err[]='password Required';
}
if (!preg_match("/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,12}$/",$password)) {
  $err[]= "Only letters and white space allowed"; 

}

 if (empty($_POST["email"])) {
    $err[]= "Email is required";
  } else {
    $email= test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $err[]= "Invalid email format"; 
    }
  }

if(!empty($err)){
 //// echo "email or password error//
var_dump($err); 
}else{
///do your success
}

修补一下

于 2016-11-23T10:52:20.293 回答
1

未经测试,但我认为您正在寻找这样的东西??!

<?php
if( isset( $_POST ) )
{
  // Optional
    session_start();
  // End Optional

  $email = FALSE;
  $password = FALSE;

  if( filter_var( $_POST[ 'email' ], FILTER_VALIDATE_EMAIL ) )
  {
    $email = TRUE;
  }
  if( !empty( $_POST[ 'password' ] ) )
  {
    $password = TRUE;
  }

  if( $email && $password )
  {
    // Optional
      $_SESSION[ 'email' ] = $_POST( 'email' );
    // End Optional

    redirect( nextPage.php );
  }
  else
  {
    redirect( login.php );
  }
}

它将检查电子邮件的格式是否有效并且密码字段是否为空,如果两者都正确,它将将用户传递到下一页,否则将返回登录。

于 2016-11-23T10:45:56.350 回答