使用PHP会话保存表单数据

时间:2012-05-31 15:28:37

标签: php forms session

我在PHP中创建了一个小测验,它会询问一系列是/否问题,然后在最后告诉你答案。我正在尝试使用PHP会话,以便如果用户只是通过测验的一半,例如当他们关闭浏览器并重新打开它时,它将与他们离开时的问题相同。以下是我正在使用的其中一种表格的代码。

<div class='questions'>
  <form method ='GET' action='Creatures.php'>
    <input type='submit' name='answer$number' value='Yes' class='buttons' />
    <input type='submit' name='answer$number' value='No' class='buttons' />
  </form>
</div>

如果您想查看测验,请转到s504518.brunelweb.net/Creatures.php 。我不知道如何做到这一点,因为我以前没有使用过会话,任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:3)

您不能使用PHP会话执行此操作,因为在浏览器关闭时会破坏会话。

要实现您提到的内容,您应该将最终用户的答案保存到cookie中,并在最初加载页面时检查它是否存在。

看看http://php.net/manual/en/function.setcookie.php

答案 1 :(得分:0)

如果用户已注册,请将其存储在数据库中。这通常是最好的选择。 Cookies可以工作但你有可能出错。

另外 - 如果我读得正确,回答$number不能用单引号连接。可能是:

echo " name='answer$number' "(双引号中回显)或echo 'name="answer'.$number.' " '(单引号中回显)。这是节俭的,但可能会产生误导。我将引号间隔开以表示间隙,但这些应该先删除。

我相信数据库是最安全的方式。 U总是可以使用cookie将用户链接到他们的答案。此外 - 数据库稍后会给你统计数据。这样,即使用户以某种方式丢失了他们的cookie,他们也可以随时输入他们的电子邮件地址继续。

是的,当浏览器关闭时,会话总是被杀死(只是为了确认)。