在投票系统上每人只允许一票

时间:2012-07-30 21:14:37

标签: php voting-system

我正在开发一个小帖子系统,所以我可以在我的网站上发帖子,人们可以喜欢也不喜欢它。

看起来像这样:

the voting system

此刻,您可以根据需要多次投票和投票。我知道如何使用JavaScript无法点击图像,但我还需要一种在PHP中执行此操作的方法,因为有人可以使用fireBug或Chrome控制台再次点击按钮。

这可能是我用PHP实际制作的第一件事,所以我还是初学者。感谢您的任何建议。

3 个答案:

答案 0 :(得分:8)

我不打算只为你编写代码,脚本网站上可能有很多可行的例子。以下是一些让您指向正确方向的提示:

会话变量 - $_SESSION[] - 检查是否已设置,然后在投票后设置它们。只要他们不关闭浏览器,他们将无法再次投票。

Cookie - $_COOKIE[] - 与会话相同,但即使关闭并再次打开浏览器也可以保留。

IP地址 - $_SERVER['REMOTE_ADDR'] - 在MySQL的IP表和投票表中保留记录。

登录系统 - 仅允许经过身份验证的用户进行投票,然后跟踪数据库中的投票。

上述任何组合都是可以接受的。希望能让你指出正确的方向。

答案 1 :(得分:6)

既然你要学习这个,我就不会发布任何完整的代码。不过,我可以概述一下。

执行此操作的最佳方法是将投票存储在数据库表(可能是MySQL)中:

| vote_id | user_id | post_id | vote |

其中:

  • vote_id是一个自动增量列,可为每次投票创建唯一ID
  • user_id是提交此投票的用户的标识符
  • post_id是用户投票的帖子的标识符
  • vote确定此投票是上升还是下降。

现在,您可以形成查询以确定某人是否已经对该帖子进行了投票,并采取相应行动。

答案 2 :(得分:0)

您需要在服务器端验证它,即在PHP代码中验证它。您可以通过IP地址(如果未登录用户/来宾)或通过用户名(对于登录用户)执行此操作

您无法通过客户端验证来阻止用户。