dポイントプレゼントキャンペーン実施中!

呼び出し元:aaaa.php
呼び出し先:https://bbbbb.jp/php/cccc.php
認証:Basic
ユーザー/パス:user/pass
メソッド:POST

PHP:5.x

という前提でfsockopenを使ってaaaa.phpからcccc.phpにPOSTでデータを投げようと考えています。

今回初めてコマンドラインからPOSTをすることになり、いろいろと模索している状況です。PEARやPECL系は入れないみたいなので、fsockopenをつかうことになりました。

aaaa.phpの中身
$POST = "postData";
$request = "POST /php/cccc.php HTTP/.0\n".
"Host: https://cccc.jp\n".
"Authorization: Basic".base64_encode("dddd:eeee");
"\n".
$POST
."\n".
"\n";
$fp = fsockopen("ssl://bbbbb.jp",443);
fputs($fp,$request);
$res="";
while(!feof($fp)){
$res=fgets,4096);
fclose($fp);

と、こんな感じです(今手書きだったので、このままだとコンパイルエラーになる可能性もありますが、それは無視とします)

タイムアウトを15に設定しデバッグしても、それを過ぎてもなんのレスもない状態です。
requestの書き方がまずいんだと思うのですが、どこをどうすればいいのかわかりません。
authを入れない状態だと、resに"</body></html>"というタグが入ってきます。

受け取り側のスクリプトはPOSTで受け取ったものをログに吐き出すだけの単純なものです。

ちょっとつかみづらい内容で申し訳ありません。もし情報が足りなければ捕捉いたしますので、ご教授願います。

A 回答 (1件)

Content-Length:文字列の長さ


↑がありません。

$resが .= で加算になっていませんが、これは注意書き通りですか?

あと、参考URLのような方法もPHPにはありますので参考になさってみてください。

余談ですが、POSTする先のプログラム側でリファラチェックなどが行われていたら、いくら待っても通らない可能性はあります。

参考URL:http://programming-magic.com/?id=134
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!