我试图制作一个测试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;
是否可以检查输入的值是否是电子邮件?
答案 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
}
稍微修补一下