Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在cookie中存储多个二进制值_Php_Jquery_Html_Cookies - Fatal编程技术网

Php 在cookie中存储多个二进制值

Php 在cookie中存储多个二进制值,php,jquery,html,cookies,Php,Jquery,Html,Cookies,我的网站上有很多投票,我想阻止用户多次重新投票。据我所知,我可以保存访问者的IP日志,也可以存储cookies。我试着在mySQL数据库中使用IP日志,但有一个问题:路由器后面的所有访问者都有相同的外部IP,因此只有路由器后面的一个人可以对某个投票进行投票 因此,现在我将我的代码转换为使用cookies,除非有更好的解决方案。由于最终将有数百或数千次投票,我认为有20个cookie限制,我如何存储每次投票的值?这些值只能是二进制值,例如,如果尚未投票,则poll1=0;如果投票,则poll1=1

我的网站上有很多投票,我想阻止用户多次重新投票。据我所知,我可以保存访问者的IP日志,也可以存储cookies。我试着在mySQL数据库中使用IP日志,但有一个问题:路由器后面的所有访问者都有相同的外部IP,因此只有路由器后面的一个人可以对某个投票进行投票

因此,现在我将我的代码转换为使用cookies,除非有更好的解决方案。由于最终将有数百或数千次投票,我认为有20个cookie限制,我如何存储每次投票的值?这些值只能是二进制值,例如,如果尚未投票,则poll1=0;如果投票,则poll1=1

此外,如果有帮助,每次轮询都会立即使用jquery显示结果。我假设我可以在jquery响应中设置/修改cookie


有什么想法吗?谢谢(顺便说一句,我意识到Cookie可以被删除)

即使您可能有数百次投票,也可以合理地预期每个用户只会在其中的几次投票中投票。因此,您可以只拥有一个cookie,其中包含一个以逗号分隔的轮询ID列表,用户在其中进行了投票


当然,Cookie不提供任何保护,因为它们可以被删除或篡改,但它们也是存储此类信息的唯一实用方法,在大多数情况下都能正常工作。

如果您真的想限制每个用户,您需要实现用户标识,这意味着您需要用户注册,登录和会话管理。一旦你做到了,这一点都不难。只要在用户进行投票并检查以确定他们是否已经进行投票时,在用户记录和投票记录之间实现一个多对多关系,并创建一个连接记录


试图对用户的活动实施限制,而不实施真正识别用户的方法,将永远不会奏效。

最后一句话使整个问题变得毫无意义。用户是指匿名用户吗?或者?弹片:民意调查对于完全防止多重投票并不重要。如果用户想经历禁用cookie或删除cookie的麻烦,那么我会让他们投票多次。我更希望用户保持匿名。不需要登录或注册,也许可以同时使用登录的ip和cookie?谢谢cacablanca,这可能就行了。我可以用逗号分隔已投票的投票数,如14238728235、38382等。。。你知道如果我超过4KB的cookie限制会发生什么吗?@Cody:我不确定在这个限制下会发生什么,我想这取决于浏览器。但再一次,您可以轻松地在4KB中存储500-1000个甚至更多的值,而且单个用户在这么多的数据中投票的可能性很小。投票的重要性不足以100%限制重复投票。我只是想要一个小型的预防系统,让用户在正常情况下只能投票一次。我不希望用户必须在网站上注册帐户。尽管如此,我知道如果用户投入精力,他们可以通过重复投票来解决问题。