致命错误:调用未定义的函数checkdnsrr()

时间:2010-12-27 20:12:10

标签: php

我的应用程序检查注册页面上的MX记录。它在我的本地开发机器(带有 WAMP服务器的Windows 7)和我的主机帐户(Linux服务器)上运行良好。最近我在另一个托管帐户上部署了应用程序,当我尝试注册用户时出现以下错误:

  

致命错误:调用未定义的函数checkdnsrr()   d:\家\ memorytreephoto.com \ wwwroot的\ MyCMS \控制\注册\ validate_email.php   在第27行

我的代码如下:

<?php
// ------------------------------------------------------------
// VALIDATE E-MAIL
// ------------------------------------------------------------
if (!filter_var($txbEmail, FILTER_VALIDATE_EMAIL)) {
    $emailNotValid = $email_error;
    $emailvalidate_error = 1;
}

if (filter_var($txbEmail, FILTER_VALIDATE_EMAIL)) {
    if (domain_exists($txbEmail)) {
        $emailvalidate_error = 0;
    } else {
        $emailNotValid = $emailmx_error;
        $emailvalidate_error = 1;
    }
}

// Check if MX-records are present
function domain_exists($emailtocheck, $record = 'MX') {
    list($user, $domain) = preg_split('/@/', $emailtocheck);
    return checkdnsrr($domain, $record);
}
?>

有人知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

manual中的一个视图显示,自PHP 5.3.0起,此功能仅存在于Windows上。您必须升级到该PHP版本才能使该功能正常工作。

或者,有PEAR Class为PHP版本提供功能&lt; 5.3.0

答案 1 :(得分:1)

如果您运行的是Windows,则此功能仅适用于PHP 5.3.0或更高版本。

答案 2 :(得分:0)

也许您需要从php.ini文件中的disable_functions中删除checkdnsrr,或者您的托管服务提供商在php.ini中没有这个功能。检查这一点,关于PHP版本的另一个想法。