最も参考になる回答をいただけた方に100P差し上げます
よろしくお願い致します
なお下記のようなスクリプトを書いてみましたが
これではPOSTはするものの、画面が遷移できませんでした
(URLはダミーです)
--- sample script ---
$sock = fsockopen("hoge.com", 80, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)¥n");
$data = "regist=" . urlencode("true") . "&bar=" . urlencode("ceil");
fputs($sock, "POST /index.php HTTP/1.0¥r¥n");
fputs($sock, "Host: hoge.com¥r¥n");
fputs($sock, "Content-type: application/x-www-form-urlencoded¥r¥n");
fputs($sock, "Content-length: " . strlen($data) . "¥r¥n");
fputs($sock, "Accept: */*¥r¥n");
fputs($sock, "¥r¥n");
fputs($sock, "$data¥r¥n");
fputs($sock, "¥r¥n");
$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str¥n";
print "¥n";
$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);
fclose($sock);
fsockopenやfopenなどは
データのやりとりを開始するためのもので遷移は出来ないです。
headerを使えば
遷移は出来ますがPOSTでデータを渡す事は出来ません。
(GETならURLの後にパラメータをつけ加えるだけだから使えます)
cURLが導入されていればお望みの事が可能ですが php 標準ではないので
お使いのサーバに導入されているかどうかは・・・?
まずはphp_infoでサーバの情報を取得して
Configure Command の中に '--with-curl' という一文を探してみてください。
'--with-curl'があれば導入されてます。
導入されていなければphpから直接遷移する方法は無いかもしれません。
cURLなどが無くphpから直接が無理な場合は
遷移するようなクライアントサイドスクリプトを組み込んだページを生成して
クライアントのブラウザ上から呼び出すというような形にするか
どうしてもサーバーサイドで飛ばしたい場合はperlなど別の手段がないかを
探ると言う事になるかと思いますが、それはまた別の話・・・。
fsockopenではPOSTでデータを送り、画面を遷移することができないんですね・・・
今回の場合GETではなく、どうしてもPOSTでデータを送信したい事情があるため
cURLを導入して試してみようと思います
非常に参考になりました。ありがとうございます