[PHP-users 30886] Re: PHP からPOSTして別ページへ飛ぶ方法を探しています

天野 潔 kiyoshi.amano @ nifty.com
2006年 12月 5日 (火) 18:30:29 JST


こんにちは。天野です。

>PHPの若葉マーク者です。みなさんに教えていただきことがあります。
>
>お聞きしたいこと:
>PHPから別URL(.php)にPOSTでデータを送信して、そのURLへジャンプしたい.(ちょうど、<form>タグ
>を使って別URLへジャンプするようなことをしたいのです)

正攻法でいけば、fsock 関数で HTTP メッセージを送ることでしょうか。
以下の要領で指定の url へポストすることができます。
送り値は $host がホスト名、$portがポート番号、$urlが指定url、$parm が
ポストデータです。

function http_post($host,$port,$url,$parm) {
	$response="";
 
	$fp = fsockopen ($host, $port, $errno, $errstr, 30);

	if (!$fp) {
		echo "${errno}: ${errstr}";
	} else {
		$len=strlen($parm);
		$request = "POST ${url} HTTP/1.0\r\n";
		$request .= "Content-Length: ${len}\r\n";
		$request .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
		$request .= "${parm}\r\n";
		fputs ($fp, $request);
		while (!feof($fp)) {
			 $response .= fgets ($fp,1024);
		}
		fclose ($fp);

		$data = explode("\r\n\r\n", $response, 2);
		header($data[0]);
		echo $data[1];
	}
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
天野 潔 <kiyoshi.amano @ nifty.com>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


PHP-users メーリングリストの案内