POSTしたページに戻る際に起こる現象。
ページの有効期限が切れました。
ブラウザバックなんてもんが何であるんだよってなるやつ。
これの対策方法です。
なぜこれが起きるのか?
送信されたPOSTデータがもうないため。
それを再度送信してくれと更新を促されたりする。
そしてなぜPOSTデータがなくなるのか?
二重送信対策
フォームでこれが起こることによって戻った際に不意に二重送信がされないというメリット。
正直、邪魔なだけでしかなかったりする。
さて、PHP上で動いているソースなら以下をプログラムの頭に書くことによって対策が可能だ。
session_start();
header('Expires:-1');
header('Cache-Control:');
header('Pragma:');
これをやることによって、ブラウザバックしても、同じ情報が何事もなく現れるようになる。
しかし一つ考えてほしいことがある。
それって、いちいちPOSTする必要があるかということ。
例えば、それが単純な検索のためのPOSTだったり、
条件により、表示を変えるPOSTなどの場合。
それはGETで良いのではないかと。
GETの良さは、URLが残る点、つまり、再度そのURLへアクセスすることで
同じ情報のページにたどり着くことができるのだ。
メールフォームやデータを投稿するフォームはもちろんPOST送信のほうがセキュリティ的には良いのだが、
ただ単に入力により、表示が変わるというだけならGETを使うようにすべきだと思う。
コメント