[PHP-users 1094] http通信がうまくいかない。
竹本 靖
php-users@php.gr.jp
Tue, 7 Aug 2001 15:47:53 +0900
竹本@大阪です。
phpでブラウザのクライアントのPOSTをエミュレーション
しようとしているのですが、相手のCGIに対して
POSTの変数がうまく渡らないのですが
下記のソースで何処が悪いのか頭が煮詰まってしまっています。
相手のCGIからは変数がないエラーが返って来ています。
送信側の各変数は正しく設定されています。
環境は Linux RedHat 6.2J
php-3.0.15-i18n-ja
で行っています。
<?
$fp = fsockopen($s_url , 80 , &$errno , &$errstr);
if(!$fp) {
print "$errstr ($errno) <br>\n";
} else {
$send_cgi = urlencode($send_cgi);
$len = strlen($send_cgi) ;
// リクエスト ライン
fputs($fp,"POST $s_path$s_cgi HTTP/1.0\r\n");
// リクエスト ヘッダ
fputs($fp,"Content-Type: multiprat/form-data\r\n");
fputs($fp," Accept: text/plain\r\n");
fputs($fp," User-Agent: php-client\r\n");
fputs($fp," Content-Length: $len\r\n");
fputs($fp," Host: $s_url\r\n");
fputs($fp,"\r\n");
// リクエスト ボディ
fputs($fp,"$send_cgi");
fputs($fp,"\r\n");
// print "Recive Date <br>\n";
$p_sw = 0;
while(!feof($fp)) {
$buf = trim(fgets($fp,4096));
$len = strlen($buf);
if ($len == 0) {
$p_sw = 1;
}
if ($p_sw == 1){
print "$buf <br>\n";
}
// print "$len = $buf = $p_sw <br>\n";
}
fclose($fp);
}
?>