【问题标题】:Why wont my email validation work? PHP为什么我的电子邮件验证不起作用? PHP
【发布时间】:2010-12-14 15:21:47
【问题描述】:

我用过

if (!preg_match('/[a-z||0-9]@[a-z||0-9].[a-z]/', $email)) {
    [PRINT ERROR]
}

&

if (!eregi( "^[0-9]+$", $email)) {
    [PRINT ERROR]
}

&

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    [PRINT ERROR]
}

我也试过取出!并使其向后工作,但由于某种原因,这些都无法确定它是否有效。任何想法为什么?... 我在 else if 语句中有它,我不确定这是否是原因..

我正在使用 PHP

【问题讨论】:

  • 也许你可以提供$email 中有什么内容?
  • $email 来自一个表单。输入字段的名称是电子邮件,我使用了 $email = $_REQUEST['email'] ;收集其中的信息。我知道这部分工作正常,因为我可以将正确的信息通过电子邮件发送给自己
  • 这行得通,谢谢,我猜我做的时候是在某个地方搞砸了
  • 无论如何,您的前两个 if 和正则表达式完全搞砸了。现在filter_var 做了正确的事情,所以很容易假设提供的测试用例确实无效。

标签: php validation email forms


【解决方案1】:

试试

'/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/'

...

if (!preg_match('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/', strtoupper($email))) {
    [PRINT ERROR]
}

据我所知,您的正则表达式都不匹配电子邮件。

【讨论】:

  • 我刚刚从一个网站上解决了这个问题我的
【解决方案2】:

从 Kohana 源代码中试试这个:

function email($email)
{
    return (bool) preg_match('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', (string) $email);
}

【讨论】:

    【解决方案3】:

    检查您的 php 版本。 eregi 在 5.3.0 之后被弃用。另外,正则表达式不正确。

    【讨论】:

      【解决方案4】:

      试试这个(来自 wordpress):

      // from wordpress code: wp-includes/formatting.php
      function is_email($user_email)
      {
          $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
      
          if (strpos($user_email, '@') !== false && strpos($user_email, '.') !== false)
          {
              if (preg_match($chars, $user_email)) {
                  return true;
              } else {
                  return false;
              }
          } else {
              return false;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-12
        • 2015-01-20
        • 2018-01-29
        • 1970-01-01
        • 2021-01-15
        • 2014-06-08
        • 1970-01-01
        • 2015-06-15
        相关资源
        最近更新 更多