- 締切済み
cURL関数を使用したphpからのpost送信と画面遷移
cURL関数を使用したphpからのpost送信と画面遷移 とある事情で、どうしてもphpからpost送信をしなければならず、 且つ指定したURL先に画面遷移してほしいと考えております。 現状はpost送信自体は成功しているのですが、指定したURL先への画面遷移方法がわかりません。 無理にこの関数を使用した方法で実装をしたいわけではありませんが、 フォームのサブミットを押してpost送信をする処理と、同等の事をphpからpost送信、画面遷移が出来る方法があるのでしょうか? ご教授よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mpx
- ベストアンサー率71% (149/209)
>> post送信自体は成功しているのですが、指定したURL先への画面遷移方法がわかりません。 これは、例えばログイン時のIDやパスワードをPOST送信すると サーバーからリダイレクトのレスポンスが返ってくるが そのリダイレクト先のページが取得できないということでしょうか? この場合、処理自体は難しくは有りませんがサイト毎に必要な処理が異なるので それぞれに合わせて組む必要が有ります。有名サイトほど面倒です 必要な処理の例を示します。 1.POST後のレスポンスヘッダーを解析し Redirectの指示が有ればそのURLのページを取得しなおす。 レスポンスコードが 301~303の場合が該当します。 多くの場合は、-L オプションでも対応できます 他に、metaタグでリダイレクト先が指定されている場合は、本文まで読み込んで そこのページを取得しなおします。 少々面倒などが、javascriptでリダイレクト先が組み込まれている場合です その場合は、スクリプトを解析して 取得するページを取り出します。 2.多くの場合 POST後、Cookieeが送付されてきますので Redirect先にCookieeの送信も忘れずに処理します。Cookieeにサイト側の セッションコードが組み込まれている場合が多いので、これを忘れると サーバー側が正しいリダイレクト先を判断できないため所望のページに 移動できません。 3.POSTする際、UserAgentをデフォルトのままではなく、Mozilla/4.0 や compatible; MSIE 6.0などの文字を組み込んでやる。(BOT対策やブラウザ毎に 表示を切り替えているサイトもあるため) そうしないと正しくリダイレクト先を教えてくれない場合が有ります。 4.さらに凝ったサイト(某有名なSNSなど)では、javascriptを解析して POSTする情報を付加する必要があります。Javascriptでhidden属性のコード をForm内に書き込んでサーバーに送信させてセッションを維持しているものも 有ります。この場合は、POST時にjavascriptで書き加えられたhidden属性の 値も一緒にPOSTしてやる必要があります。 5.POSTデータをjavascriptで別のコードにエンコードしてから送信させている サイトも有りますので、その場合はそのエンコードルールに従う必要があります サイトによってどこまでPHP側で処理しなければならないかは変わりますので、 以上のことを参考にしてご自分で作りこむしか有りません。
- yambejp
- ベストアンサー率51% (3827/7415)
理論的に無理ですね それができたらページの成りすましがいくらでもできちゃいます