用if语句解释PHP中的布尔值
以下表单始终返回true,即使域可用。有人能告诉我我做错了什么吗?谢谢用if语句解释PHP中的布尔值,php,boolean,Php,Boolean,以下表单始终返回true,即使域可用。有人能告诉我我做错了什么吗?谢谢 <?php function domainAvailable($domain){ $results = @dns_get_record($domain, DNS_ANY); return empty($results); } if (isset($_REQUEST['domain'])) // check to see if form has been submitted { $domain = htmlspecia
<?php
function domainAvailable($domain){
$results = @dns_get_record($domain, DNS_ANY);
return empty($results);
}
if (isset($_REQUEST['domain'])) // check to see if form has been submitted
{
$domain = htmlspecialchars($_REQUEST['domain'], ENT_QUOTES, 'UTF-8');
$httpdomain = 'http://' . $domain;
if (domainAvailable($httpdomain) == true){
echo "$domain is not available.";
if (domainAvailable($httpdomain) == false){
echo "$domain is available!";
}
}
}
?>
<form method="post" action="">
<div>
<label for="domain name">Suggest a Domain:</label> <input type="text" name="domain" /><br />
<input type="submit" />
</div>
</form>
建议一个域:
从解开ifs开始:
if (domainAvailable($httpdomain)){
echo "$domain is not available.";
} else {
echo "$domain is available!";
}
另外,你可能把你的弦向后拉
if (domainAvailable($httpdomain)){
echo "$domain is available.";
} else {
echo "$domain is not available!";
}
然后,去掉这一行:
$httpdomain = 'http://' . $domain;
您的domainAvailable函数可能会始终返回true,因为http://
不是有效域名的一部分
调用htmlspecialchars可能也会导致误报
总而言之:
<?php
#CLI debugging:
if(empty($_REQUEST['domain']) && !empty($argv[1]))
$_REQUEST['domain'] = $argv[1];
function domainAvailable($domain) {
$results = @dns_get_record($domain, DNS_ANY);
return empty($results);
}
if (isset($_REQUEST['domain'])) // check to see if form has been submitted
{
$domain = htmlspecialchars($_REQUEST['domain'], ENT_QUOTES, 'UTF-8');
if (domainAvailable($_REQUEST['domain'])) {
echo "$domain is available.";
} else {
echo "$domain is not available!";
}
}
PS.htmlspecialchars不会弄乱任何东西如果您有机会解释包含#CLI调试的原因,“htmlspecialchars不会弄乱任何东西”--仅当您的输入不包含特殊字符时。尝试一个非ascii域,如
Bücher.ch
或Пзззззззззззззз。您可能需要实现punycode才能真正实现这些功能,但是无论怎样,htmlspecialchars
都会妨碍您的工作。我将CLI模式设置为“因为这样更容易工作/测试:)
$ php scratch.php google.com | more
google.com is not available!
$ php scratch.php googleasdfasdf.com. | more
googleasdfasdf.com. is available.