[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 メーリングリストの案内