PHPでフォームを介さずにPOST送信する方法を勉強しています。


Googleで検索してfsockopenを使い、思い通りには出来たのですが、以下の点が疑問に思います。

1:確認画面がある場合はどうするのか?
掲示板投稿やお問い合わせフォームでも、だいたい確認画面があります。
最近のプログラムは、フォーム→確認→完了と、ファイル名が個別に分かれていません。

2:会員制の場合はどうするのか?
当機能を作成しようと思った用途は、「ローカル上でブログの記事を書いて、PHPでPOST出来れば便利」
だと思い、調べていたのですが、会員制の場合はどうなるのでしょうか?
クッキーの場合は問題ないと思いますが、今はだいたいセッションだと思うので、
その場合はどうすればいいのでしょうか?


具体的なソースを書くのは難しいかと思いますので、参考URLやプログラムの考え方について
アドバイスいただければと思います。よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/06/10 20:02:33
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント35pt

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通信を行う」を参考にしてください。


参考サイト

id:k27w

ちょっと難しそうですが、参考にさせていただきます。ありがとうございました。

2008/06/10 14:44:15
id:shintabo No.2

回答回数45ベストアンサー獲得回数10

ポイント25pt

/* curlが書かれていたので、書こうとしたのですが */

/* 探したら同じことを書いてるところがありましたので、URLを貼ります */

http://itpro.nikkeibp.co.jp/article/COLUMN/20070704/276685/

id:k27w

こちらの方がわかりやすいですね。ありがとうございます。

2008/06/10 19:59:35
id:machiii No.3

回答回数1ベストアンサー獲得回数0

ポイント20pt

HTTP送信のクラスが便利だと思います。

http://framework.zend.com/manual/ja/zend.http.html

クッキーの保持などかなり便利です。

http://snoopy.sourceforge.net/

単純なGET,POST送信とかにオススメ

READMEにサンプルあります。

id:k27w

フレームワークの機能ですね。参考にさせていただきます。

2008/06/10 20:01:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません