[PHP-users 32102] Re: php でPOSTでリダイレクト
Masaaki Suga
suga @ tenrikyo.or.jp
2007年 5月 10日 (木) 17:43:04 JST
須賀です
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 メーリングリストの案内