1

我有一个游戏,用户可以赢得一些东西。一旦他赢了,他就有 60 秒的时间来填写他的地址名称等,否则他失去了他的价格,其他人可以接受。当他没有在 60 秒内填写地址时,他会被重定向到一个抱歉为时已晚的页面,并且他失去了价格。当他填写他的地址时,他会被重定向到一个确认页面并可以索取他的价格。

我用 php 做了这个,计数器在 javascript 中。当时间 = 0 时,javascript 将执行重定向

我如何控制用户进入确认页面或进入迟到页面。我想知道即使用户离开页面,我如何才能确定 javascript 倒计时确实计数为零。

多谢

4

4 回答 4

4

您不能确定 - 您的用户可以轻松修改您的 javascript 以增加时间限制,甚至完全禁用计时器。

应在服务器上验证时间限制。我建议当时间限制开始时,服务器在数据库中存储一行存储它是哪个用户以及时间限制何时开始。当用户提交时,服务器应该检查数据库,看看已经过去了多少时间。

我也认为只有 60 秒的时间来填写你的地址是相当苛刻的,但这是你的决定。

于 2010-11-10T08:34:48.090 回答
0

你可以这样做,使用 javascript 进行用户界面,当用户离开文件时,执行 ajax 调用到 php 脚本并保存他刚刚在字段中输入的数据。和真正的计数在 php 中进行,所以当用户提交最终数据时,你还应该检查 php 中的时间是否过期。

我认为这是解决您问题的好方法。

于 2010-11-10T08:37:42.907 回答
0

如果您使用 Javascript 执行此操作,任何人都可以阅读您的脚本并找到奖品页面的位置。

相反,使用microtime()使用 PHP 运行计时器。当他们看到“You Win”页面时,您就可以开始了。它将在后台运行,并且不依赖于任何用户交互。

于 2010-11-10T08:38:32.973 回答
0

尽量不要只信任 javascript 来完成这项工作,当用户获取表单以填写他的数据时,使用 php 在会话或数据库中写入时间 - 检查此开始时间和结束时间之间的差异(使用 php) -用户向服务器提交表单并在 diff<=1 分钟时向他显示确认或在 diff>1 分钟时向他显示抱歉迟到的时间

于 2010-11-10T08:40:08.640 回答