将FILTER_VALIDATE_EMAIL集成到注册脚本中


Integrate FILTER_VALIDATE_EMAIL in registration script

当用户想要注册时,我想集成FILTER_VALIDATE_EMAIL过滤器。

我有这个输入:

<input type="text" name="email" maxlength="255" />

代码的某些部分:

  • $email=strip_tags(mysql_real_eescape_string($_POST['email']))
  • $email2=mysql_query("SELECT*FROM users WHERE email='{$email}'")

这个:

if(mysql_num_rows($email2) == 1)
{
echo "This email address is already in used.";
}

如果你需要更多的代码,请告诉我。谢谢
这是我第一次使用MySQL,请注意
或者其他验证电子邮件的方法,ofc。

尝试以下代码:

$email = strip_tags(mysql_real_escape_string($_POST['email']));
if(filter_var($email, FILTER_VALIDATE_EMAIL)) { // Email is valid
    $result = mysql_query("SELECT * FROM users WHERE email = '{$email}'");
   if(mysql_num_rows($result)) {
      echo "This email address is already in used.";
    }
} else {
    echo "E-mail is not valid";
}
$email_a = 'mail_check@hotmail.com';
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "This (email_a) email address is considered valid."; 
   //reported as valid
} else {<br />
    echo "This email is invalid";
}

这是具有指定筛选器(filter_VALIDATE_EMAIL)用法的filter_var函数的示例。。

如何使用的示例:

$email = "someone@example.com";
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
  echo "E-mail is not valid";//Handle not valid email
}else{
  $result = mysql_query("SELECT * FROM users WHERE email = '{$email}'");
  //handle $result of DB
}

来自手动

附带说明:从PHP 5.5.0开始,Mysql_*扩展已被弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。

一个有用的链接为什么我不应该在PHP 中使用mysql_*函数