我的 php 网站流程如下:
- Page1.php 有一个 POST 到 Page2.php 的 html 表单
- Page2.php 将所有 POST 数据存储到 SESSION 变量中,并有一个指向 Page3.php 的按钮
- Page3.php 有另一种形式,将其数据发布到 Page4.php
- 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 中工作,这就是我测试的地方。