如果用户之前在任何时候按下过按钮,则存储
Store if user has pressed button at any point before
我正在制作一个图片库,我希望有一个投票按钮,人们可以按下该按钮来增加图片获得的票数。显然我不希望人们向投票按钮发送垃圾邮件,所以我想限制每个用户只能投 1 票。
我无权访问任何类型的数据库(写入文件除外),并且登录系统对我的目标受众不利。
存储用户之前是否访问过该页面的最佳方式是什么?使用 PHP 或 JavaScript 或其他东西会更好吗?
就我个人而言,我会自己去找一个数据库...但是如果您不想使用一个数据库,您仍然可以写入文件。例如:创建一个数组,将用户的IP地址存储在其中。将此数组作为 JSON 代码写入文件 (json_encode) 并存储它。当用户点击赞按钮时,读取文件,解码 json (json_decode) 并检查 IP 地址是否存在于文件中。如果不是:添加到数组并存储到文件中。点赞数,等于 JSON 对象中 IP 地址的数量。
实现这一点的最佳方法是在按下赞按钮时进行 ajax 调用。访问者不会看到页面加载。
注意:从技术上讲,您可以将 cookie 设置为 "remember" 用户已经单击了按钮。这将节省您对存储点赞的文件的一些阅读。
没有认证系统,你可以暂时限制一个用户的操作,但用户可以欺骗你的系统多次投票。
以下是不使用 login/auth 系统的解决方案(及其缺点):
您可以使用 cookie、本地存储或任何其他方式在客户端存储赞成票操作,但用户可以清除所有这些以重新获得投票权。对于大多数人来说,这可能没问题(取决于您的观众),但是任何想要欺骗系统的技术人员都可以做到。
您可以使用用户代理或 IP 地址等引用在服务器端存储更新操作。但是这些 "authentication" 系统并不可靠:用户可以共享相同的用户代理并轻松更改它们。多个用户可以共享同一个 IP 地址并使用代理更改他们的 IP 地址。
第三种解决方案是使用外部系统:facebook +1 投票系统(facebook 使用自己的身份验证系统)或 google+ 或其他外部服务。用户将无法欺骗系统,但您不拥有自己的投票数,没有 Facebook 或 google+ 帐户的人将无法投票。
我正在制作一个图片库,我希望有一个投票按钮,人们可以按下该按钮来增加图片获得的票数。显然我不希望人们向投票按钮发送垃圾邮件,所以我想限制每个用户只能投 1 票。
我无权访问任何类型的数据库(写入文件除外),并且登录系统对我的目标受众不利。
存储用户之前是否访问过该页面的最佳方式是什么?使用 PHP 或 JavaScript 或其他东西会更好吗?
就我个人而言,我会自己去找一个数据库...但是如果您不想使用一个数据库,您仍然可以写入文件。例如:创建一个数组,将用户的IP地址存储在其中。将此数组作为 JSON 代码写入文件 (json_encode) 并存储它。当用户点击赞按钮时,读取文件,解码 json (json_decode) 并检查 IP 地址是否存在于文件中。如果不是:添加到数组并存储到文件中。点赞数,等于 JSON 对象中 IP 地址的数量。
实现这一点的最佳方法是在按下赞按钮时进行 ajax 调用。访问者不会看到页面加载。
注意:从技术上讲,您可以将 cookie 设置为 "remember" 用户已经单击了按钮。这将节省您对存储点赞的文件的一些阅读。
没有认证系统,你可以暂时限制一个用户的操作,但用户可以欺骗你的系统多次投票。
以下是不使用 login/auth 系统的解决方案(及其缺点):
您可以使用 cookie、本地存储或任何其他方式在客户端存储赞成票操作,但用户可以清除所有这些以重新获得投票权。对于大多数人来说,这可能没问题(取决于您的观众),但是任何想要欺骗系统的技术人员都可以做到。
您可以使用用户代理或 IP 地址等引用在服务器端存储更新操作。但是这些 "authentication" 系统并不可靠:用户可以共享相同的用户代理并轻松更改它们。多个用户可以共享同一个 IP 地址并使用代理更改他们的 IP 地址。
第三种解决方案是使用外部系统:facebook +1 投票系统(facebook 使用自己的身份验证系统)或 google+ 或其他外部服务。用户将无法欺骗系统,但您不拥有自己的投票数,没有 Facebook 或 google+ 帐户的人将无法投票。