如何编写一个只允许每位用户每天点击一次的按钮?
How to code a button that permits only one click per user per day?
在此站点中:theanimalrescuesite.com 有一个按钮,每天可以单击一次。所以我的问题是如何在我的网站上制作一个类似的按钮(我不是说喜欢设计)。每当有人在我的网站上时,如果他早些时候点击向他展示广告,例如,如果他没有点击向他展示按钮。有人知道如何编码吗?
您可以设置用户点击按钮后的cookie,该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;
}
Aravind Sivam 先于我。 I did it in 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();
}
});
按钮编码之外
首先,您需要了解这需要在后端进行一些工作,只需在浏览器上使用 JavaScript,只需删除 cookie 或更改 JavaScript 代码即可轻松调整您实施的解决方案:
这些是初学者的一些选择:
- 使用 cookie:您只需在用户首次单击按钮时向浏览器添加一个 cookie,然后检查该 cookie 是否存在以禁用该按钮。
此解决方案效率低下,原因:只需删除 cookie 并享受无限点击。
- 使用会话:您在后端启动用户会话,如果单击按钮需要注册,那么您只需使用数据库中可用的用户数据进行会话,您在用户模型上设置一个字段表明如果用户今天是否已经点击,那么你 disable/enable 按钮基于你的用户模型中的那个值。
您还需要检查您的点击次数,
您检查发送点击的用户的状态,这是
因为人们可以在您的浏览器上篡改 JavaScript 并发送
即使禁用按钮,您也可以点击。
这个解决方案(基于我的愚见)是最佳的,因为它考虑了所有(再次根据我所知道的)。
现在如果用户不需要注册,您只需使用用户的 IP 地址作为标识符进行会话。
可能有更简单的方法,但我不知道:D
现在,如果您不关心每位用户的点击次数或唯一点击次数,则无需完成上述所有工作。
希望对您有所帮助!
在此站点中:theanimalrescuesite.com 有一个按钮,每天可以单击一次。所以我的问题是如何在我的网站上制作一个类似的按钮(我不是说喜欢设计)。每当有人在我的网站上时,如果他早些时候点击向他展示广告,例如,如果他没有点击向他展示按钮。有人知道如何编码吗?
您可以设置用户点击按钮后的cookie,该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;
}
Aravind Sivam 先于我。 I did it in 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();
}
});
按钮编码之外
首先,您需要了解这需要在后端进行一些工作,只需在浏览器上使用 JavaScript,只需删除 cookie 或更改 JavaScript 代码即可轻松调整您实施的解决方案:
这些是初学者的一些选择:
- 使用 cookie:您只需在用户首次单击按钮时向浏览器添加一个 cookie,然后检查该 cookie 是否存在以禁用该按钮。
此解决方案效率低下,原因:只需删除 cookie 并享受无限点击。 - 使用会话:您在后端启动用户会话,如果单击按钮需要注册,那么您只需使用数据库中可用的用户数据进行会话,您在用户模型上设置一个字段表明如果用户今天是否已经点击,那么你 disable/enable 按钮基于你的用户模型中的那个值。
您还需要检查您的点击次数, 您检查发送点击的用户的状态,这是 因为人们可以在您的浏览器上篡改 JavaScript 并发送 即使禁用按钮,您也可以点击。
这个解决方案(基于我的愚见)是最佳的,因为它考虑了所有(再次根据我所知道的)。
现在如果用户不需要注册,您只需使用用户的 IP 地址作为标识符进行会话。
可能有更简单的方法,但我不知道:D
现在,如果您不关心每位用户的点击次数或唯一点击次数,则无需完成上述所有工作。
希望对您有所帮助!