php - 如果页面已被访问过则重定向

标签 php javascript

我想我陷入了困境,我真的希望有人能帮助我。

所以,我正在尝试使用 PHP 和 JS 制作类似测验应用程序的东西。这个想法是给用户一张有 4 个可能答案的图片,他必须猜测图片中的内容。用户根据他点击的答案获得 x 积分,并被重定向到下一页,包含图片和答案等。用户还有机会跳到下一页。但事情是这样的:

如何检查用户是否已经回答了特定问题,以便如果该问题已经得到回答,我可以将他重定向到下一页?基本上,这就像一种防止作弊的保护措施,这样用户就无法从同一个问题中获得越来越多的分数。

我目前坚持使用 MySQL 解决方案,为每个页面创建列,在其中存储值,然后在用户尝试访问特定页面时比较它们,根据存储的值重定向他。这是唯一的解决方案吗?

如果我的英语不太好,我很抱歉,希望你们能理解我的问题。 :)

最佳答案

您提到,该用户可以登录和注销。因此我假设,您已经拥有一个用户数据库,并且希望以某种方式存储特定用户已经回答的问题,但您不知道将这些信息存储到 MySQL 数据库中的正确方法是什么。

现在,如果我弄错了,我很抱歉,你的意思是,但如果我的假设是正确的,那么有几种方法,如何存储你想要保存的数据。例如,您可以向用户表中添加另一列,其中将包含用户回答的最后一个问题。每次用户回答下一个问题时,您都可以更新该值。

也就是说,如果您有 4 个问题,则该列将为空。当您来到有问题的页面时,您会查看数据库,该用户回答的最后一个问题是什么。由于该用户没有回答任何问题,因此该栏仍为空,您可以问他第一个问题。如果他回答,您现在可以更新值为 1 的列。下次同一用户访问包含问题的页面时,您再次查看数据库中的同一列,您将获得值 1。所以现在您已经询问了第一个问题,您可以询问用户下一个问题。

如果问题没有按特定顺序提出并且可以随机呈现,您还有其他可能的解决方案:创建引用表。您可以创建新表,其中包含三列:user_id、question_id 和该问题的答案(如果您也需要保存答案)。现在,每次用户打开生成问题的页面时,您都可以查看包含问题的表格并选择用户未回答的所有问题。所以你做这样的事情:

SELECT * 
FROM questions_table 
WHERE question_id NOT IN 
(SELECT question_id 
FROM questions_answered_by_users 
WHERE user_id=$currentUserId)

关于php - 如果页面已被访问过则重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314218/

相关文章:

javascript - 正则表达式非转义引号

javascript - 引用错误: event is not defined firefox d3. js

php - $_GET 不从 URL 检索 id

php - 正则表达式 - 阻止垃圾邮件

php - 没有从 SQL 查询中获取输出

PHP:在if语句中分配多个变量

php - 如何在 php 中导出没有 BOM 的 csv 文件,字符集 utf-8 而不是 utf-8?

javascript - 能够在循环中使用 ( v-if ) 切换 True/False

javascript - 如何不重复自己并改进我的应用程序布局对象?

javascript - 如何让球从 Canvas 上水平弹起