[PHP-users 32104] Re: php でPOSTでリダイレクト

ゆむ qqqz9b69 @ green.ocn.ne.jp
2007年 5月 10日 (木) 18:13:57 JST


ゆむ と申します。

HTTPリダイレクトを使用する限り、現在のメジャーなブラウザはGETでしか転送
先を見に行きません。

なので、サーバー側で強引にそれをやろうとすると次のようになるのではないでしょうか。

1. クライアントからサーバーAのスクリプトにPOST
2. サーバAのスクリプトからサーバBのスクリプトにPOSTしてステータスなどをセットしておく
3.サーバAからクライアントに、サーバBへのアドレスをリダイレクト先として返す
4.クライアントからサーバーBのスクリプトにGET

※ セキュリティ的にどうなのかは知りません。
  何も考えずにやるとザルなシステムとなるでしょう


On Thu, 10 May 2007 17:43:04 +0900
Masaaki Suga <suga @ tenrikyo.or.jp> wrote:

> 須賀です
> 
> 77web <info @ 77-web.com> wrote:
> 
> > > 過去ログ30881のスレッド
> > で質問者の方がやろうとしていたことはかなり特殊なので、須賀さんがそれと同
> > じことをやろうとなさっているなら、当然onload submitを使うことになると思
> > います。
> > 
> > が、須賀さんのおっしゃる「POSTでリダイレクト」というのが、単に
> > 1.ユーザが何らかの値をフォーム入力して送信ボタンをクリック
> > ↓
> > 2.フォームから送信されたURLへリダイレクト
> > というだけなら、そんなに難しいことを考える必要は無いと思いますよ。
> > 
> > たとえば、下記のサンプルスクリプトでは、ユーザにURLをフォーム入力して
> > redirectボタンをクリックしてもらうと、入力されたURLにリダイレクトするこ
> > とができます。
> > <?php
> > if(!empty($_POST))
> > {
> >   header("Location:".$_POST['url']);
> > }
> > else
> > {
> > ?>
> > <form action="test.php" method="post">
> > URL:<input type="text" size="30" name="url" id="url" /><br />
> > <input type="submit" value="redirect" />
> > </form>
> > <?php
> > }
> > ?>
> > 
> > 上記は
> > >POSTで投げて受信するスクリプトは
> > >あちこちにありますが,サイトへ飛ぶ(URL自体が,飛び先に変わる)
> > >というのが,ないようです(調べ方が足りないかもしれませんが・・)
> > からの私の勝手な推測ですので、全く的外れのことを言っていたら申し訳ありま
> > せん。
> > 
> > 「PHPでPOSTでリダイレクト」だけではなくて、もう少し具体的なご質問だった
> > ら、具体的なレスもつくと思いますが…。
> 
> 具体的には,
> 
> (1) aaa.htmlを表示(ブラウザのURLはhttp://www.xxx.co.jp/aaa.html)
> (2) aaa.htmlのformで職員番号を入力する
> (3) aaa.htmlのformがmethod="post"でaction="bbb.php"とする
> (4-1) bbb.phpでは(2)で入力された職員番号が001から100までなら,
>     その職員番号をPOSTでccc.phpへ渡してccc.phpを表示(ブラウザのURLがhttp://www.yyy.co.jp/ccc.phpに置き換わる)
> (4-2) bbb.phpでは(2)で入力された職員番号が101から200までなら,
>     その職員番号をPOSTでddd.phpへ渡してddd.phpを表示(ブラウザのURLがhttp://www.yyy.co.jp/ddd.phpに置き換わる)
> 
> aaa.html,bbb.phpはサイトX(www.xxx.co.jp)内に設置
> ccc.php,ddd.phpはサイトY(www.yyy.co.jp)内に設置
> 
> です
> 
> (4-1)のブラウザのURLがhttp://www.yyy.co.jp/ccc.phpに置き換わる ことがしたいのです
> bbb.phpで職員番号をPOSTでccc.phpへ投げて,結果を受信してそのresponseをprintすれば
> 一応,ccc.phpが表示されますが,URLがhttp://www.xxx.co.jpのままなので
> ccc.phpで使っているcssや画像など相対パスのものがすべてリンク切れを起こします
> 
> 
> よろしくお願いします
> 
>  -------------------------------
>  須賀正明:suga @ tenrikyo.or.jp
>  -------------------------------
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3



PHP-users メーリングリストの案内