使用Preg_match错误检查电子邮件是否有效?

时间:2013-03-26 05:05:26

标签: php email

您好我想检查电子邮件是否有效,如blabla@blabla.com,而不仅仅是纯文本'BLbalbalba'。

我有这个功能:

function VerifyEmail($address) 
{
   $Syntax='#^[w.-]+@[w.-]+.[a-zA-Z]{2,5}$#';
   if(preg_match($Syntaxe,$adrdess))
      return true;
   else
     return false;
}

并按照以下方式检查:

    $email = htmlentities($_POST['email']);
if (!empty($email) && !empty($password) && !empty($message) && VerifyEmail($email) === true) {

获取这些错误:

Notice: Undefined variable: Syntaxe in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Notice: Undefined variable: adrdess in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Warning: preg_match() [function.preg-match]: Empty regular expression in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Notice: Undefined variable: Syntaxe in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Notice: Undefined variable: adrdess in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Warning: preg_match() [function.preg-match]: Empty regular expression in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

为什么会这样?我做错了什么?这是一种检查电子邮件是否有效的稳定方式吗? 谢谢!

2 个答案:

答案 0 :(得分:5)

不,它不是“稳定”,它不是“有效”,它不会做得很好。使用

filter_var($email, FILTER_VALIDATE_EMAIL)

代替。相关文档:http://www.php.net/manual/en/function.filter-var.php

答案 1 :(得分:3)

这里有一些拼写错误

应该是

function VerifyEmail($address) 
{
   $Syntax='#^[w.-]+@[w.-]+.[a-zA-Z]{2,5}$#';
   if(preg_match($Syntax,$address))