【问题标题】:email domain validation in php on windowsWindows上php中的电子邮件域验证
【发布时间】:2018-02-20 19:22:42
【问题描述】:

我通过我网站中的表格要求提供电子邮件地址。我想验证域,以便我可以防止我现在收到的虚假条目。我正在使用以下代码,但它似乎不起作用:

function myCheckDNSRR($hostName, $recType = '')
{
    if(!empty($hostName)) {
        if( $recType == '' ) $recType = "MX";
        exec("nslookup -type=$recType $hostName", $result);
        // check each line to find the one that starts with the host
        // name. If it exists then the function succeeded.
        foreach ($result as $line) {
            if(eregi("^$hostName",$line)) {
                echo "valid email";
            }
        }
        // otherwise there was no mail handler for the domain
        echo "invalid email";
    }
    echo "invalid EMAIL";
}

我是新手,使用了here的代码

请指导我。谢谢。

【问题讨论】:

  • 它似乎不起作用你得到什么错误?
  • 为什么不像世界其他地方一样发送一封带有确认链接的电子邮件?
  • 没有具体的错误。但来自用户的电子邮件地址未经过验证。
  • ereg()?那是 PHP 4 代码!使用验证库!
  • @AlexK。你能说得更具体些吗

标签: php validation email


【解决方案1】:

使用像https://docs.zendframework.com/zend-validator/validators/email-address/这样的验证库

$validator = new Zend\Validator\EmailAddress();

if ($validator->isValid($email)) {
    // email appears to be valid
} else {
    // email is invalid; print the reasons
    foreach ($validator->getMessages() as $message) {
        echo "$message\n";
    }
}

在您的数据库中创建一个用于存储电子邮件链接代码的表。当有人注册时,将用户标记为未激活,直到他单击电子邮件中的链接。这样,您就知道它是真实的,并且可以激活用户。

【讨论】:

  • 该网站是核心 PHP 先生。它会导致和问题吗?
  • 没问题。您可以在没有整个框架的情况下使用组件 :-) 只需下载 lib,并在您需要的类中 require!
【解决方案2】:

我想你可以像这样简单地 ping。

 function myCheckDNSRR($email_address)
    { 
        if(!empty($email_address)) {
            $hostName=strstr($email_address, '@');
            $hostName=str_replace("@","www.",$hostName);
            exec("ping " . $hostName, $output, $result);
            if ($result == 0){
                 echo "valid email";
            }
            else{
                 echo "invalid email";
            }
    } 
 }

这样称呼

  echo myCheckDNSRR("sample@gmail.com");

【讨论】:

  • 仍然没有下载先生。 @Error404
  • 代码必须工作(测试)如果不是那么你一定有其他问题,可能是权限问题或什么
  • 这段代码在windows上工作吗?我的意思是它支持所有 Windows 版本吗?
  • 嘿,谢谢它的工作,我错过了解释条件。此代码验证所有域对吗?
猜你喜欢
  • 1970-01-01
  • 2016-05-12
  • 2017-06-23
  • 1970-01-01
  • 2011-09-25
  • 2017-03-19
  • 2012-10-04
  • 1970-01-01
  • 2013-02-12
相关资源
最近更新 更多