あきら×ひろこ=ゆう 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 ;
}
なるほど確かにそうしがち忘れがちのメモ。