私のphpウェブサイトは次のように流れます:
- Page1.php には、Page2.php に POST する html フォームがあります。
- Page2.php は、すべての POST データを SESSION 変数に保存し、Page3.php につながるボタンを持っています。
- Page3.php には、そのデータを Page4.php に POST する別のフォームがあります。
- Page4.php は、すべての POST データを SESSION 変数に保存します。
私の問題は、ユーザーが Page4.php の戻るボタンをクリックして Page3.php に戻って入力を変更する必要があることです。Page3.php に戻ると、ページ全体がデフォルトの状態で再レンダリングされるため、フォームは空白になります。
これを回避してユーザーの以前の入力を再表示するには、次のようにします。
<input value="<?php echo $_POST["guest1Ticket"];?> " type="text" name="guest1Ticket" id="guest1Ticket" onblur="isTicketNumber(this)" size ="22"/>
これが重要な部分です -<?php echo $_POST["guest1Ticket"];?>
これは機能しますが、別の問題が発生します。ユーザーが (ブラウザを閉じる前に) Page1.php に戻り、Page3.php に到達したときにプロセスを最初からやり直すと、最後の実行からのデータがフォームに読み込まれます。
私がしなければならないことは、ユーザーが Page1.php にアクセスしたときにすべての sdession 変数をクリアすることです。私はこのようにしようとしました:
<?php
session_start();
session_unset();
session_destroy();
?>
(上記は私のファイルの一番上にあり、最初の文字の前に空白はありません。)
Page1.php のロード時に警告は生成されませんが、セッション変数は設定解除されません。Page3.php に到達すると、最後の実行からのデータがまだフォームに入力されています。
セッション データを正しく消去するにはどうすればよいですか?
ところで、私はこれがChromeで動作するために必要なだけで、それがテスト中です。