Googleで検索してfsockopenを使い、思い通りには出来たのですが、以下の点が疑問に思います。
1:確認画面がある場合はどうするのか?
掲示板投稿やお問い合わせフォームでも、だいたい確認画面があります。
最近のプログラムは、フォーム→確認→完了と、ファイル名が個別に分かれていません。
2:会員制の場合はどうするのか?
当機能を作成しようと思った用途は、「ローカル上でブログの記事を書いて、PHPでPOST出来れば便利」
だと思い、調べていたのですが、会員制の場合はどうなるのでしょうか?
クッキーの場合は問題ないと思いますが、今はだいたいセッションだと思うので、
その場合はどうすればいいのでしょうか?
具体的なソースを書くのは難しいかと思いますので、参考URLやプログラムの考え方について
アドバイスいただければと思います。よろしくお願いします。
1:確認画面がある場合はどうするのか?
確認画面のボタンは、たいてい、submit または button オブジェクトです。
これらのオブジェクトを form から送出したように見せれば良いだけです。手順は、fsockopen で POST 渡ししたときと同じです。もしかすると GET 渡しだけで十分かもしれません。
「ファイル名が個別に分かれていません」というケースでは、GET/POST 渡されたパラメータの値によって動作を変えているはずです。正しいパラメータを渡せば済みます。
2:会員制の場合はどうするのか?
Cookie で識別している場合は、すでに成功している fsockopen を用いた手順で送ることができます。ただし、あらかじめ、PHP で有効な Cookie を受け取っておかなければなりません。
ブラウザで正規のログインをしていれば、ローカルディスクの Cookie の中に目的の値が格納されています。これを取り出せばいいでしょう。
さもなければ、PHPを使ってログインを行い、返信されてくる Cookie を受け取ります。
セッションについては、セッションIDというものを Cookie または POST 渡ししてくるので、これを受け取れば済みます。
なお、fsockopen 関数より、CURL 関数を使った方がコーディングが短くなります。とくに fsockopen 関数がSSL通信をラッパしていないとアクセスできません。この場合は CURL 関数を使うのが第一選択となります。
詳しい手順は「PHPセキュリティ対策:SSL通信を行う」を参考にしてください。
/* curlが書かれていたので、書こうとしたのですが */
/* 探したら同じことを書いてるところがありましたので、URLを貼ります */
こちらの方がわかりやすいですね。ありがとうございます。
HTTP送信のクラスが便利だと思います。
http://framework.zend.com/manual/ja/zend.http.html
クッキーの保持などかなり便利です。
http://snoopy.sourceforge.net/
単純なGET,POST送信とかにオススメ
READMEにサンプルあります。
フレームワークの機能ですね。参考にさせていただきます。
ちょっと難しそうですが、参考にさせていただきます。ありがとうございました。