如何编写每个用户每天只允许一次点击的按钮?

时间:2015-04-05 19:09:22

标签: javascript jquery button cookies

在这个网站:theanimalrescuesite.com有一个按钮,可以每天点击一次。所以我的问题是如何在我的网站上制作一个类似的按钮(我不喜欢设计)。每当我的网站上有一个人,如果他之前点击过来向他展示一个广告,例如他是否没有点击向他显示按钮。有人知道如何编码吗?

3 个答案:

答案 0 :(得分:1)

您可以在用户点击一天内过期的按钮后设置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;
}

答案 1 :(得分:0)

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();
    }
});

答案 2 :(得分:0)

超越按钮编码
首先,您需要了解这需要在后端进行一些工作,只需在浏览器上使用JavaScript,您可以通过删除cookie或更改JavaScript代码轻松调整实现的解决方案:

这些是初学者的一些选择:

  1. 使用Cookie:您只需在用户首次点击按钮时向浏览器添加Cookie,然后检查Cookie是否存在以禁用该按钮。
    此解决方案效率低下,原因是:只需删除Cookie并享受无限点击。
  2. 使用会话:您在后端启动用户会话,如果单击按钮需要注册,那么您只需使用数据库中可用的用户数据进行会话,您在用户模型上设置一个字段,指示是否用户今天已经点击过,然后根据用户模型中的值禁用/启用按钮 您还需要检查点击次数, 你检查发送点击的用户的状态,这是 因为人们可以在浏览器上篡改JavaScript并发送 即使禁用按钮,也会点击 此解决方案(基于我的拙见)是最佳的,因为它考虑了所有内容(同样来自我所知)。
  3. 现在,如果用户不需要注册,您只需使用用户的IP地址作为标识符进行会话。

    可能有更简单的方法,但我不知道:D

    现在,如果您不关心每位用户的点击次数或唯一点击次数,那么您无需执行上述所有工作。

    希望这有帮助!