PHPのリロード対策
あきら×ひろこ=ゆう PHPのリロード対策を誤っていました!
PHPでこれを表示させないためには、パラメータをセッション変数に保存し、Location ヘッダーに自分自身を指定して送信するのが一般的だ。
少し前は、以下の様に実装していた。
if isset $_POST[ ‘command’ ] {
パラメータの処理
…header ‘Location: ‘ . $_SERVER[ ‘PHP_SELF’ ] ;
exit ;
}しかし、これだと以下のようなフォームでページが呼び出された場合にうまく行かない。
上記実装では command パラメータが与えられる事を前提としているのに、パラメータは何も渡って来ない。
正しい実装は以下の様にするべきだ。
if $_SERVER[ ‘REQUEST_METHOD’ ] == ‘POST’ {
パラメータの処理
…header ‘Location: ‘ . $_SERVER[ ‘PHP_SELF’ ] ;
exit ;
}
なるほど確かにそうしがち忘れがちのメモ。
関連する記事:
- 少年よ大志を抱け: PHP: use_trans_sidの注意点
- バウンスメールの処理について(仕様検討)
- phpのHeader関数で404を返す
- 標準入力からのメール処理でメール情報を取得する
- 空メールによる自動返信機能
Powered by MightyAdsense
トラックバック URL :