
cURL関数を使用したphpからのpost送信と画面遷移
とある事情で、どうしてもphpからpost送信をしなければならず、
且つ指定したURL先に画面遷移してほしいと考えております。
現状はpost送信自体は成功しているのですが、指定したURL先への画面遷移方法がわかりません。
無理にこの関数を使用した方法で実装をしたいわけではありませんが、
フォームのサブミットを押してpost送信をする処理と、同等の事をphpからpost送信、画面遷移が出来る方法があるのでしょうか?
ご教授よろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>> 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側で処理しなければならないかは変わりますので、
以上のことを参考にしてご自分で作りこむしか有りません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php history.back()の戻るボタ...
-
ブラウザの戻るボタンで重複登...
-
フォームを使わずにPOST送信す...
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
Excel VBA:特定の文字列以降(...
-
VBA コレクションに2次元配列...
-
VB 音の波形を取得する関数は?
-
switch()文で値の大小比較
-
PHP+SmartyとAjax
-
バッチファイルで、全てのウィ...
-
開始と終了を指定して、その間...
-
DMMの動画を全件取得したのです...
-
[CakePHP] Paginatorのリンクが変
-
【C#】FindWindowExの使い方を...
-
shシェルスクリプト 空白行の...
-
ExcelVBAで、FileSystemObject...
-
syntax error, unexpected 'ech...
-
Google scholarがひらけなくな...
-
URLのパラメータをGETのままで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IFRAME内PHPのセッション変数取...
-
PHPで値を保持する方法
-
asp.netでのセッションを使用し...
-
VBAで重複チェックの仕方を教え...
-
フォームを使わずにPOST送信す...
-
【Java】投稿完了画面リロード...
-
php history.back()の戻るボタ...
-
セッションを使用したページ遷移
-
HTMLエスケープ処理とデーター...
-
PHP+MySQLからHTMLページを自動...
-
POSTで受け渡したものを保存し...
-
飛び先のランダムURLの取得方法...
-
cURL関数を使用したphpからのpo...
-
ログイン画面から入って、「戻...
-
BBSにダブルクォーテーションを...
-
アクセスでのデータ保存について。
-
ブラウザの戻るボタンで重複登...
-
ブラウザバックしてもチェック...
-
htmlspecialcharsについて
-
閉じるボタン「×」を制御したい
おすすめ情報