0

我在 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 。我不知道如何做到这一点,因为我以前没有使用过会话,任何帮助将不胜感激。

4

2 回答 2

3

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

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

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

于 2012-05-31T16:24:08.063 回答
0

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

另外-如果我没看错,答案$number不会用单引号连接。要么是:

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

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

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

于 2012-06-27T16:06:12.443 回答