【发布时间】:2013-03-07 16:43:33
【问题描述】:
我的 php 网站流程是这样的:
- Page1.php 有一个 POST 到 Page2.php 的 html 表单
- Page2.php 将所有 POST 数据存储到 SESSION 变量中,并有一个指向 Page3.php 的按钮
- Page3.php 有另一种形式将其数据 POST 到 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 中工作,这就是我正在测试的地方。
【问题讨论】: