【问题标题】:Issue with validate email using PHP使用 PHP 验证电子邮件的问题
【发布时间】:2016-06-13 22:53:55
【问题描述】:

我有以下代码来检查用户输入是否是有效的电子邮件,可能已经有一些关于此的问题,但似乎没有人验证 PHP 函数。

/* 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,因为像?= 这样的字符在电子邮件地址中。有没有更严格的检查电子邮件的方法?

【问题讨论】:

  • “什么都不写” - 你的意思是它在测试输入时返回 true 吗?
  • 您将变量作为$epost 传递给您的函数,然后以$email 访问它——这不会检查传递的变量。
  • 拼写错误,问题已更新,
  • 即使我有 ?= 在电子邮件地址中,它也会返回 true。
  • 看到这个:stackoverflow.com/questions/19220158/… 你的测试地址似乎确实有效。

标签: php email


【解决方案1】:

这里的问题是?= 对于电子邮件地址完全有效。来自Wikipedia on the RFC controlling email addresses

电子邮件地址的本地部分可以使用以下任何 ASCII 字符:
这些特殊字符:!#$%&'*+-/=?^_`{|}~ (ASCII: 33, 35–39, 42, 43, 45, 47, 61, 63, 94–96, 123– 126)

如果您要确保电子邮件地址确实存在,请注意该路径是 very difficult

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2018-12-22
    • 2019-06-16
    相关资源
    最近更新 更多