POST結果を取得しようとしていますが、サーバーがそれをブロックしています。私はで試しました
- fsockopen
- カール
- file_get_contents
しかし、私は「アクセスが拒否されました」のエロアマッサージと同じ結果をサーバーから得ました。
ブロックサーバーからPOST結果を取得する方法はありますか?
<?php
$post_arr = array ("regno" => "1");
$addr = 'url';
$fp = fsockopen($addr, 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$req = '';
foreach ($post_arr as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&" . $key . "=" . $value;
}
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
fwrite($fp, $header);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
そしてまた
<?php
$postdata = http_build_query(
array(
'regno' => 1
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('url', false, $context);
echo $result;
?>
上記の両方の方法で、アクセス拒否の出力が得られます。