2

dns_get_record()を介してドメインのDNSレコードを取得しようとしていますが、変数が挿入されたときに関数が機能しないようです。これが私のコードです

<form action="" method="post">
     <input type="text" name="host" placeholder="Enter IP or Domain"/>
     <select name="dns">
          <option value="DNS_A" selected="selected">A</option>
               ....
          <option value="DNS_ANY">ANY</option>
     </select>
</form>
<?php
$host=$_POST['host'];
$dns=$_POST['dns'];
$type=end(explode('_',$dns));
if ($host==""){
     exit();
}
echo "Results for $host $type record<br />";
$result = dns_get_record($host, $dns);
echo "Result = ";
print_r($result);
?>

でも入れたら

$result = dns_get_record($host, DNS_A);

それ以外の

$result = dns_get_record($host, $dns);

それは動作します..ヘルプ!

4

2 に答える 2

3

DNS_A値1の定数です。文字列「DNS_A」を渡しているときに、定数の値を渡してみてください。$result = dns_get_record($host, constant($dns));

于 2012-12-01T11:55:53.167 に答える
3

これは、必要に応じて、POST がリテラル文字列 "DNS_A" を返すためです。これはDNS_A と同じではありません。DNS_A は定数であり、ほとんどの場合整数が含まれています。

これにはマッピング テーブルが必要です。または、整数値をそのまま渡します。

于 2012-12-01T11:54:43.633 に答える