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 ;
}

なるほど確かにそうしがち忘れがちのメモ。

関連する記事:

Powered by

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">