首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果用户在之前的任何点按下按钮,则存储

如果用户在之前的任何点按下按钮,则存储
EN

Stack Overflow用户
提问于 2015-07-25 20:21:15
回答 2查看 77关注 0票数 0

我正在制作一个图片库,我希望有一个投票按钮,人们可以按下增加一张图片收到的票数。显然,我不想让人们垃圾邮件的投票按钮,所以我想限制每个用户1票上。

我无法访问任何类型的数据库(除了写入文件),并且登录系统对我的目标受众不利。

用户是否曾经访问过该页面,存储该页面的最佳方法是什么?为此使用PHP或JavaScript或其他什么方法会更好吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-25 20:30:57

如果没有身份验证系统,您可以暂时限制用户的操作,但用户可以欺骗您的系统多次投票。

以下是不使用登录/auth系统的解决方案(及其缺点):

  • 您可以使用cookie、本地存储或任何其他方式来存储upvote操作客户端,但是用户可以清除所有这些以重新获得投票权。对大多数人来说,这是可以接受的(取决于你的观众),但是任何想要欺骗系统的技术人员都能做到。
  • 可以使用引用(如用户代理或IP adress )存储更新操作服务器端。但是这些“身份验证”系统并不可靠:用户可以共享同一个用户代理并轻松地更改它们。多个用户可以共享同一个IP地址,并使用代理来更改他们的IP地址。
  • 第三种解决方案是使用外部系统: facebook +1投票系统(facebook使用自己的auth系统)或google+或其他外部服务。用户将无法欺骗该系统,但您不拥有对您的上票计数,没有facebook或google+帐户的人将无法投票。
票数 2
EN

Stack Overflow用户

发布于 2015-07-25 20:28:12

我会亲自去给自己找个数据库..。但是,如果您不想使用一个,您仍然可以写到一个文件。例如:创建一个数组并在其中存储用户的IP地址。而不是将这个数组作为JSON代码写入文件(json_encode)并存储它。当用户单击“相似”按钮时,读取该文件,解码json (json_decode),并检查该文件中是否存在IP地址。如果没有:添加到数组并存储到文件中。喜欢的数量等于JSON对象中IP地址的数量。

实现此功能的最佳方法是在按下“相似”按钮时进行ajax调用。而访问者却看不到页面的装载。

注意:从技术上讲,您可以设置一个cookie,以“记住”用户已经单击了按钮。这将为您节省一些类似文件存储在其中的读取量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31630747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档