我的应用程序检查注册页面上的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);
}
?>
有人知道如何解决这个问题吗?
答案 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版本的另一个想法。