どこで働いているかわからない、無名のエンジニアのわりとどうでもいい日記www

ネットデブリ予定地です。。生暖かい目で今後ともヨロシクwww 技術よりも哲学的な内容が多いですww

クロームの再POST問題

Webアプリケーションにおいて
F5を押してPOSTが再送信されるとマズイので
POSTを受け取って処理した後で適当なURLに転送するのが定石で、
こうするとF5を押してもPOSTが再送信されないけど
クロームだとちょっと落とし穴があるみたいだ。
http://www.eisbahn.jp/yoichiro/2005/11/method.html


クロームだと転送前と転送後が
同一URLの場合はF5を押すと
フォームの再送信ダイアログが出てしまう仕様のようだ。

ここでYesを押すと転送したのに
再POSTされてしまう。。

スレイプニルFirefoxでは同一URLでも
転送さえすれば、F5を押して再POSTはされない。


つまり開発者側の注意点として
クロームではheader('Location: '.$_SERVER['PHP_SELF']);
のようなPOST後の同一URLの転送は
再POST問題の解決としては不完全なので、

別URLにするか適当なGetパラメータを付加して転送しないと
いけないということのようです。