我需要一些帮助来确定如何在我的网站上实现以下内容。该网站将允许用户观看电视频道,但我需要它在一段时间后阻止用户。 (例如,注册和激活的用户可能会被允许几个小时,但仅限该用户。我不希望所有用户在我尝试阻止一个用户的同一时间被阻止。我想我想要使用用来执行此操作的JavaScript。
原始问题,如果我在重写时错过了一些内容:
如果我需要的东西会发生在我身上,我会很高兴,你知道我有一个允许用户观看电视频道的网站,所以我需要一段时间后会阻止用户的javascript。例如:如果用户注册并且有动作所以我需要在一段时间之后用户通过javascript自动阻止,我不希望这种情况发生在所有用户同时可能是他们的地址。如果有任何评论帮助我;我是一个糟糕的英语,我不懂英语也帮助我,谢谢你的支持者们)
答案 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 "";
}