[PHP-users 27896] Re: 認証が必要なサイトへ POST でデータを飛ばす方法

tak tak @ pokerag.jp
2005年 12月 21日 (水) 18:43:45 JST


takです。

> Http_Requestの方法を取ると、ページ情報を取得して
> こちらで表示させるイメージになるのですね。(間違ってます?)

おっしゃる通りかと。

> 先方のサイトの作りによってはその後が上手く動かない
> ようなので、私としてはリダイレクトさせるようにしたい
> のですが。

RFC2616(HTTP/1.1) Redirectの項に、
「POSTリクエストに対するユーザ問い合わせ無しの
 自動リダイレクトはやめれ(MUST NOT)」
の記載があるので、ほとんどのブラウザでPOSTリダイレクトは
できないようになっていると思います。

リダイレクトと違い、かつ逃げの一手ですが、
以下のようなレスポンスを投げてFORMのonLoadメソッドで
POSTを出させるようにするぐらいの事しか思いつきません。
ただし、クライアント側がJavaScript非対応orオフの場合、
自動更新しないですけど。。。

--------------
<BODY onLoad="document.frm.submit();">
<FORM name="frm" action="https://www.xxxx/xxx/xxx.php" method="POST">
<INPUT type="hidden" name="User" value="...">
<INPUT type="hidden" name="Pass" value="...">
<INPUT type="submit" value="更新"><br>
自動的に更新しない場合は上のボタンを押してください。
</FORM>
</BODY>



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