PHP strpos检查邮件@和

时间:2012-06-28 09:07:41

标签: php function strpos

我制作了一个PHP脚本来检查电子邮件是否有效。 唯一的问题是它不会检查点是否在“@”后面。它接受这样的电子邮件:Hi.Hello@hotmailcom什么时候它应该只接受像HiHello@hotmail.com这样的电子邮件

这是我的剧本:

<?php
$mail = $_POST['mail'];

    function checkmail($mail)
        {
            if ((strpos ($mail, '@') !== false) && (strpos ($mail, ".") !==false))
            {                   
                return true;
            }
            else
            {
                return false;
            }
        }

if(checkmail($mail))    
{
echo"Goed"; 
}   
else    
{       
echo"Fout";     
}

?>

提前致谢!

3 个答案:

答案 0 :(得分:3)

不要严重重新发明轮子,使用filter_var('bob@example.com', FILTER_VALIDATE_EMAIL),或者在你的情况下更好filter_input(INPUT_POST, 'mail', FILTER_VALIDATE_EMAIL)

http://php.net/filter_var
http://php.net/filter_input

答案 1 :(得分:1)

如上文所述,您可以使用filter_var PHP函数,但前提是您的PHP版本大于 5.2.0 。 如果您想要更通用的电子邮件验证,也可以使用正则表达式,有关详细信息,请参阅herehere

答案 2 :(得分:1)

{data: "No recipients defined"}