0

我有一个页面标签应用程序,它是一个类似门的竞赛。

用户喜欢一个页面,提供他们的电子邮件地址并点击提交以参加比赛。

他们进入后,我设置了一个会话变量 $_SESSION['entered'] = '1'; 或类似的东西

一旦他们进入,我会在页面(html)上显示更多信息并删除电子邮件表单。

问题:如果用户停留在页面上,刷新一百万次(在同一个浏览器窗口中),会话变量仍然存在,我可以告诉用户已经输入并显示正确的信息。

如果用户关闭窗口,稍后在新窗口中返回,等等。我会丢失会话信息,并且再次向用户显示输入表单(尽管他们已经参加了比赛)

如果用户离开并回来,我如何在页面应用程序中为用户维持会话?

4

3 回答 3

0

会话在关闭时被浏览器销毁 - 任何代码都不会改变浏览器处理它的方式。您可以尝试使用 cookie,或者尝试将会话保存到他们的 IP/用户代理(虽然不建议出于安全考虑)并在他们回来时重新建立它。

于 2013-09-25T18:39:38.770 回答
0

您可以改用cookie。会话将在退出浏览器时结束,但 cookie 将持续到它们的到期日期。

您还可以设置他们必须登录,并在他们的用户中设置他们是否参加了比赛并相应地调整页面。(只是一个想法......)

于 2013-09-25T18:50:02.590 回答
0

正如其他人所写,如果用户关闭浏览器,会话将被销毁。我也不会在你这边使用 cookie。如果用户已经输入表单并在获得此信息后显示正确的页面,我建议您获取用户 uid 并检查您的数据库。

这可能是比会话或 cookie 更安全和一致的方式。

问候

于 2013-09-25T23:38:10.337 回答