如何对每个用户每天只允许单击一次的按钮进行编码
How to code a button that permits only one click per user per day?
在这个网站:theanimalrescuesite.com中有一个按钮,每天可以点击一次。所以我的问题是如何在我的网站上制作一个类似的按钮(我不是说像设计)。每当有人在我的网站上,如果他早些时候点击向他展示广告,例如,如果他没有点击向他显示按钮。有人知道如何编码这个吗?
您可以在用户单击按钮后设置cookie,该按钮将在一天内过期,因此根据cookie,您可以找到用户是否单击按钮的位置,然后您可以启用或禁用按钮。
设置cookie
function createCookie(name, value, days) {
var date, expires;
if (days) {
date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toGMTString();
} else {
expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
阅读cookie
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
除了编码按钮
首先,你需要明白,这需要在后台做一些工作,浏览器上只有JavaScript,你实现的解决方案将很容易通过删除cookie或更改JavaScript代码来调整:
以下是一些初学者的选择:
- 使用cookie:当用户第一次点击按钮时,只需在浏览器中添加一个cookie,然后检查cookie是否存在以禁用按钮
此解决方案效率低下,原因是:只需删除cookie即可享受无限点击 - 使用会话:您在后端启动用户会话,如果单击按钮需要注册,那么您只需在数据库中使用用户数据创建一个会话,在用户模型上设置一个字段,指示用户今天是否已经单击,然后根据用户模型中的值禁用/启用按钮
你还需要检查一下你的点击量,您检查发送单击的用户的状态,这是因为人们可以篡改你浏览器上的JavaScript并发送即使禁用该按钮,也会单击
这个解决方案(基于我的浅见)是最优的,因为它考虑了所有因素(同样根据我所知)
现在,如果用户不需要注册,只需使用用户的IP地址作为标识符创建一个会话。
可能有更简单的方法,但我不知道任何:D
现在,如果你不关心每个用户的点击次数或唯一点击,那么你就不需要做上面的所有工作
希望这能有所帮助!
Aravind Sivam打败了我。我在jQuery中做到了。两个例子,一个会在点击后禁用按钮一天,另一个会隐藏它。(注意,用户可以通过禁用JavaScript轻松绕过这一点。)
$(document).ready(function () {
$("button").click(function () {
var $this = $(this);
if ($this.is(".example-1")) {
$.cookie("button1", 1, {
expires: 1
});
$this.prop("disabled", true);
} else {
$.cookie("button2", 1, {
expires: 1
});
$this.hide();
}
});
if ($.cookie("button1")) {
$(".example-1").prop("disabled", true);
}
if ($.cookie("button2")) {
$(".example-2").hide();
}
});
相关文章:
- 单击一次后禁用按钮-第2部分
- 如何对每个用户每天只允许单击一次的按钮进行编码
- 如何更新按钮内部的文本,每行重复一次
- 按钮仅显示一次图像
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 如何更改此按钮/菜单列表,以便一次只能看到一个菜单
- 一次取消选中所有JQuery单选按钮集
- 在不到2秒内按下下一次按钮时发出警报
- 点击一次的按钮没有启动
- 只需单击一次按钮,jquery即可自动淡入/淡出文本
- 用于单击页面上的按钮的Javascript,每隔几分钟就会加载一次
- jQuery按钮每2秒点击一次
- 一次将选择一个单选按钮
- Facebook喜欢的按钮只加载一次
- 有没有可能的方法可以在一次ASP按钮单击中同时显示JavaScript和服务器端代码中的消息
- 单击一次按钮即可用随机化值填充多个输入
- 如何模拟“;向下翻页”;每2秒钟按下一次按钮
- JQuery触发一次按钮点击
- 多次选择选项更新一次按钮按下
- Javascript Timer每0.1秒点击一次按钮