【问题标题】:Using PHP Sessions to save form data使用 PHP Sessions 保存表单数据
【发布时间】:2012-05-31 15:28:36
【问题描述】:

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

【问题讨论】:

  • $)$(又名 404,同时按住 SHIFT 键)
  • 我不明白,该放在哪里?
  • 你的链接不存在link。如果你想保存数据,需要在会话中设置它们,你也可以使用cookie来实现你的目标,添加更多关于你真正想做的信息?您的表单中有哪个 html 元素?
  • 抱歉链接是 s504518.brunelweb.net/Creatures.php。我想要实现的主要目标是,当用户关闭浏览器时,当他们重新打开浏览器时,它们将与离开浏览器时一样

标签: php forms session


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      相关资源
      最近更新 更多