Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
Jquery 如何限制用户在其机器中只单击一次按钮_Jquery_Html_Cookies_Cross Browser - Fatal编程技术网

Jquery 如何限制用户在其机器中只单击一次按钮

Jquery 如何限制用户在其机器中只单击一次按钮,jquery,html,cookies,cross-browser,Jquery,Html,Cookies,Cross Browser,我正在制作投票页面,任何用户无需登录即可投票。 用户只能投票一次,因此如果用户刷新页面,则投票按钮不得出现 如果用户在cookies中投票,我会尝试保存, 但问题是:若用户打开另一个浏览器或删除cookie,他可以重新投票 那么,如何防止用户重新投票呢?您永远无法完全确定用户只投票一次。您可以做的是添加多个支票。例如,存储用户的IP地址并检查该IP是否已用于投票。您还可以要求投票人在您的网站上创建一个帐户,他们需要验证其电子邮件地址,并且只允许登录用户投票一次。如果用户不是匿名用户,请不要在其视

我正在制作投票页面,任何用户无需登录即可投票。 用户只能投票一次,因此如果用户刷新页面,则投票按钮不得出现

如果用户在cookies中投票,我会尝试保存, 但问题是:若用户打开另一个浏览器或删除cookie,他可以重新投票


那么,如何防止用户重新投票呢?

您永远无法完全确定用户只投票一次。您可以做的是添加多个支票。例如,存储用户的IP地址并检查该IP是否已用于投票。您还可以要求投票人在您的网站上创建一个帐户,他们需要验证其电子邮件地址,并且只允许登录用户投票一次。

如果用户不是匿名用户,请不要在其视图中加载HTML for按钮。第一次(在用户单击它之前)显示它,然后在他单击它时,为该用户保存一个标志,然后在确定是否渲染按钮时测试该标志。另外,确保在从ajax获得成功响应后立即从DOM中删除该按钮(假定您是通过ajax完成的)。
如果用户是匿名的,那么你就不能真正制定一个万无一失的解决方案。一种选择是使用浏览器指纹识别和IP来尝试并限制这一点,但这永远不会是万无一失的。IP可以是动态的,你永远不能确定你有一个唯一的用户。即使这样,如果我保存IP地址,DOM中仍然会有按钮的痕迹。

。IP可以是动态的,如果我们在公司内部有这样的IP,我会阻止公司的所有员工投票,不是吗?@doha没错,确保某人只投票一次的唯一方法是让他们创建一个帐户,您可以手动验证(通过检查护照之类的东西。大多数情况下,让某人创建一个具有唯一电子邮件地址的帐户就足够了。但正如你所知,任何人都可以创建无限多的电子邮件地址。PS:某人也可以使用VPN代理“欺骗”IP地址