我的脚本上有很多评论家,我正在使用我的注册表:
(empty($_POST['email']))
有些人说这不好,有更好的选择吗?
我也在使用preg_march进行电子邮件验证:
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST['email'])) {
有一个人说我需要使用Filter_validate
并且有一个人告诉我使用strlen
任何答案?
最后:我正在使用以下方式发送激活电子邮件:
mail($Email, 'Activeer je account!', $message, 'Van: NoReply@RubyCMS.com');
这有什么问题吗?人们一直说我需要使用phpmailer类,但我甚至不知道那是什么......
由于
答案 0 :(得分:2)
filter_var()
与您所能获得的一样好,如果不发送电子邮件到该地址并附上确认链接。您可以执行DNS和MX记录检查等操作,但它们会增加很多开销,也会给您带来误报。
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
// bad email
}
答案 1 :(得分:1)
我会说你应该使用它可以给你的所有可能的语言好处。
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
很好。
当您使用preg_match
时,您应该知道regexp
好。如果你不擅长,那么总是可能会失败。
关于mail
,这取决于您应该发送多少封电子邮件。如果每小时发一封电子邮件,那不是问题。如果循环中有很多字母 - 更好地找到其他解决方案。
答案 2 :(得分:0)
if( isset($_POST['field']) && !empty($_POST['field']) )
来避免讨厌的“未定义索引”问题/消息。FILTER_VALIDATE_EMAIL
完全符合RFC 。无论谁告诉您使用strlen()
验证电子邮件地址,都需要撤销其互联网权限。