使用PHP验证电子邮件的问题
我有下面的代码来检查用户输入是否是有效的电子邮件,可能已经有一些问题了,但是似乎没有人验证PHP函数使用PHP验证电子邮件的问题,php,email,Php,Email,我有下面的代码来检查用户输入是否是有效的电子邮件,可能已经有一些问题了,但是似乎没有人验证PHP函数 /* check if valid email*/ public function isValidEmail($email){ if(filter_var($email, FILTER_VALIDATE_EMAIL)) { return true; } return false; } 如果我们使用此功能进行测试: isValidEmail('some?=
/* check if valid email*/
public function isValidEmail($email){
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
return true;
}
return false;
}
如果我们使用此功能进行测试:
isValidEmail('some?=Wrong@mail.com')
这应该返回
false
,因为像?=
这样的字符在电子邮件地址中。有没有更严格的方法来检查电子邮件?这里的问题是?
和=
对电子邮件地址完全有效。从
电子邮件地址的本地部分可以使用以下任一ASCII字符:这些特殊字符:!#$%&'*+-/=^_`{|}~(ASCII:33,35-39,42,43,45,47,61,63,94-96,123-126)
如果您试图确保电子邮件地址确实存在,请注意该路径是这里的问题是
?
和=
对于电子邮件地址完全有效。从
电子邮件地址的本地部分可以使用以下任一ASCII字符:这些特殊字符:!#$%&'*+-/=^_`{|}~(ASCII:33,35-39,42,43,45,47,61,63,94-96,123-126)
如果您试图确保电子邮件地址确实存在,请注意该路径是“不写任何内容”-您的意思是它在测试输入时返回true?您将变量作为
$epost
传递给函数,然后作为$email
访问它-这不会检查传递的变量。拼写错误,问题更新后,即使我的电子邮件地址中有?=也会返回true。请看:您的测试地址实际上似乎有效。通过“不写任何内容”-你的意思是它在测试输入时返回true吗?你将变量作为$epost
传递给你的函数,然后作为$email
访问它-这不会检查传递的变量。拼写错误,问题更新,即使我有?=电子邮件地址,它也会返回true。请参见:你的测试地址实际上似乎有效。