人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

(PHP)fsockopenを使い、データをPOST後そのままPOST先のURLに遷移したい

最も参考になる回答をいただけた方に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);

●質問者: jayz
●カテゴリ:インターネット ウェブ制作
✍キーワード:accept application Bar BODY hoge
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967
●100ポイント

fsockopenやfopenなどは

データのやりとりを開始するためのもので遷移は出来ないです。


headerを使えば

遷移は出来ますがPOSTでデータを渡す事は出来ません。

(GETならURLの後にパラメータをつけ加えるだけだから使えます)


cURLが導入されていればお望みの事が可能ですが php 標準ではないので

お使いのサーバに導入されているかどうかは・・・?

PHP: cURL - Manual

まずはphp_infoでサーバの情報を取得して

Configure Command の中に '--with-curl' という一文を探してみてください。

'--with-curl'があれば導入されてます。

導入されていなければphpから直接遷移する方法は無いかもしれません。


cURLなどが無くphpから直接が無理な場合は

遷移するようなクライアントサイドスクリプトを組み込んだページを生成して

クライアントのブラウザ上から呼び出すというような形にするか

どうしてもサーバーサイドで飛ばしたい場合はperlなど別の手段がないかを

探ると言う事になるかと思いますが、それはまた別の話・・・。

◎質問者からの返答

fsockopenではPOSTでデータを送り、画面を遷移することができないんですね・・・

今回の場合GETではなく、どうしてもPOSTでデータを送信したい事情があるため

cURLを導入して試してみようと思います

非常に参考になりました。ありがとうございます

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ