検索フォームのセッション管理について
PHPを利用して検索フォームから入力された値を取得し、
条件にあった画面を表示しているのですがページを戻る際に警告が出て
うまく戻れません。
流れ
1,フォームから値の取得 ⇒
2,送られた値を【$a】で受け取り、セッション変数に代入、条件にあったデータの表示(select * from sample where aaa like【$a】) ⇒
3,もしフォームの値が空でセッション変数に値があれば、セッション変数を【$a】に代入し条件にあったデータの表示 ⇒
4,フォームの値、セッション変数共に空ならセッション変数を削除し、他のページに飛ばす
5,新たにフォームから値が送られた場合は値を上書きする
以下が書いたコードです。
session_start();
if(isset($_POST["test"])){
$a = $_POST["test"];
$_SESSION["test"] = $a;
}elseif($_POST["test"] == "" and isset($_SESSION["test"])){
$a = $_SESSION["test"];
}else{
unset( $_SESSION["test"] );
if (isset($_COOKIE["PHPSESSID"])) {
setcookie("PHPSESSID", '', time() - 1800, '/');
}
session_destroy();
header( "Location: /top.html" );
exit();
}
以下で【$a】を使いsql文を組み立て、データを表示しています。
このコードだと前のページに戻る際firefoxでは
【このページを表示するにはフォームデータを再度送信する必要があります。フォームデータを再送信すると以前実行した検索、投稿や注文などの処理が繰り返されます。】
と表示され、IEでも
【警告 : ページの有効期限切れ
要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。
情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。】
と表示されてしまいます
上記のコードをどのように変更すれば警告をださず行いたいことに記述したようにできるのでしょうか?
ご教授ください。よろしくお願いいたします。
お礼
アドバイス頂いた通りに設定し直したところ、無事解決しました。助かりました、本当にありがとうございました!