使用JavaScript按时间阻止网页上的用户

时间:2014-08-24 19:10:59

标签: javascript web

我需要一些帮助来确定如何在我的网站上实现以下内容。该网站将允许用户观看电视频道,但我需要它在一段时间后阻止用户。 (例如,注册和激活的用户可能会被允许几个小时,但仅限该用户。我不希望所有用户在我尝试阻止一个用户的同一时间被阻止。我想我想要使用用来执行此操作的JavaScript。

原始问题,如果我在重写时错过了一些内容:

  

如果我需要的东西会发生在我身上,我会很高兴,你知道我有一个允许用户观看电视频道的网站,所以我需要一段时间后会阻止用户的javascript。例如:如果用户注册并且有动作所以我需要在一段时间之后用户通过javascript自动阻止,我不希望这种情况发生在所有用户同时可能是他们的地址。如果有任何评论帮助我;我是一个糟糕的英语,我不懂英语也帮助我,谢谢你的支持者们)

1 个答案:

答案 0 :(得分:1)

您确定要使用javascript吗?如果是这样,有能力的用户可以绕过您的封锁。如果你真的想在几个小时后阻止用户,你可以考虑在你的服务器上做这件事(可能用PHP)。

如果你只是想阻止用户,并且不介意有几个用户绕过这个用户,那就把它写在评论中,我将解释你如何能够实现这个目标!

编辑:Javascript代码: 它应该使用此代码,在 blockUser()方法中,您可以定义浏览器应该阻止用户做什么,可能只是每秒打印一个警报或隐藏所有div或.... 希望我能帮到你!

EDIT2: 在此解决方案中,我使用名为 timeLeft 的cookie。它存储用户能够查看的时间(以秒为单位)。使用第一个if(if(getCookie(“timeLeft”)==“”))我只是创建一个新的cookie,如果那里还没有cookie。然后我每秒调用方法 subSecond 。它从当前时间中减去1并将新时间写入cookie。如果时间为零(或更少),则调用函数 blockUser ,您可以在其中添加一些额外的javascript以确保您阻止了用户。 但同样,这只是无经验用户的解决方案,知道一点点计算机的用户可以通过删除cookie或将cookie设置为更高的值来轻松绕过此块。

    var timeLeft;
    if(getCookie("timeLeft") == ""){ //cookie doesn't exist yet
        setCookie("timeLeft", 3*60*60, 365); //first argument: name of cookie
                                             //second argument: after how many seconds the user should be blocked (in this example 3 hours)
                                             //third argument: how long do you want to store this cookie in days (in this example 1 year)
    }
    timeLeft = getCookie("timeLeft");

    subSecond();

    function subSecond(){
        //1 second has past, let's remove it from our cookie
        timeLeft--;
        setCookie("timeLeft",timeLeft,"365");

        console.log(getCookie("timeLeft"));

        if(timeLeft <= 0) blockUser();

        //and now just open this method again in 1 second
        setTimeout(function(){ 
            subSecond(); 
        }, 1000);
    }

    function blockUser(){
    alert("BLOCKING");S
    }



    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }

    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
        }
        return "";
    }