「戻る」ボタン(もしくは history.back() )で前ページで入力していたフォーム内容が消えてしまう問題の対処法


Formでとある内容を次ページにPOSTで送った後に、

「戻る」ボタン、もしくは history.back() で前ページ(入力フォーム画面)に戻ったら、

フォーム内容が消える問題に遭遇。

んで、色々と実験しながら調べていたんだけど、現状だと

  • IE8 => NG
  • FireFox5.0 => NG
  • Chrome12.0 => OK

というな~ぜかChromeだけちゃんと動いてくれている様子。

さてどうしたもんか、と。

submitで前ページに入力内容を戻して~

$_POSTで受け取って~

セキュリティチェックかけて~

htmlspecialcharsでサイニタイズして~

Formに書き出す?

=゚ロ゚)ノ ⌒┫:・’.::ヤッテラレルカァァァァァ!!!!

そんなこと繰り返すからセキュリティホールが増えるんじゃぼけぇ~

(ノ ̄皿 ̄)ノヤッテラレルカァァァァァ!┫:・’.::

そこで、色々調べていたら、

と。

しかし、「session.cache_limiter」を調べてみたら、ブラウザもしくはプロキシサーバにキャッシュ保存可否を伝えるスイッチで、考えなしに「public !!」とはしたくない。

が、しかし、phpではうまいこと抜け道を用意してくれていました!!エライ!!

実はPHPは「session_cache_limiter()」ちゅう便利な関数を用意してくれているので、当該個所にこれを置いてやればおk。

そのページだけキャッシュするようにできます。

ただし、この session_cache_limiter() は session_start() がコールされる前に実行しなければダメ。

まぁ、根本解決ではないけど、これでとりあえずの回避はできるはず。

「これじゃやだ」ってヒトはシコシコと「戻る」処理を書くしかないんじゃないの?

がんばれば?おれはやんねぇけど。




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です