[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);
}
?>