没有数据库的PHP登录页面

时间:2016-11-23 10:38:59

标签: php login-page

我试图制作一个测试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>
&#13;
&#13;
&#13;

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

2 个答案:

答案 0 :(得分: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 );
  }
}

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

答案 1 :(得分:1)

你可以这样做

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

只需使用条件和模式匹配(对于电子邮件)

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

稍微修补一下