好的,我在我的网站上有一个聊天功能,我在其他问题中提到过。我学校里有一些孩子喜欢在学校聊天,但我真的宁愿他们只是在学习室聊天,所以我不会因为打断上课时间而遇到麻烦。如何在白天的特定时间段内限制用户在我的网站上的移动?谢谢!我不知道我可能需要什么类型的脚本语言,但我假设PHP,因为这是一个服务器问题。
答案 0 :(得分:3)
<?php date("H"); ?>
以24小时格式返回当前小时,并带有前导零。
这意味着,你可以这样写:
<?php
if (date("H") == 14)){
die("You cannot get here right now");
}
?>
这将“死亡”回显页面,并将在一天的第14个小时(下午2:00)准确地返回错误。
为我们提供更多代码/详细信息以获得更深入的答案。
编辑:这是对新问题的扩展答案,询问,
我学校的学习室是2:30到3:15,所以我该怎么做?
解决方案:假设学习大厅是允许使用网站(部分)的时间,您可以这样做:
<?php
$bottomValue = 60*14+30;
$upperValue = 60*15+15;
$currentValue = date("G")*60+date("i");
if (($currentValue >= $bottomValue) && ($currentValue <= $upperValue)){
// everything is OK = put some code here, or ignore this
}
else{
// well, this is the time they are not allowed to see this, so, let's try:
die("Sorry, you are not allowed to be here right now.");
}
?>
要说明其工作原理:您的时基计为分钟数$bottomValue
和$upperValue
。注意它们是如何定义的,它是60分钟乘以小时(14)加上分钟(30)。
所以,14:30是60*14+30
,因此,16:20将是60*16+20
。
然后将基数与当前时间进行比较,并根据if / else语句执行适当的代码。
答案 1 :(得分:2)
您还可以通过网络服务器控制访问权限;例如,Apache allows time-based access controls in mod_rewrite
:
RewriteEngine On
RewriteCond %{TIME_HOUR} >20 [OR]
RewriteCond %{TIME_HOUR} <07
RewriteRule ^/chat - [F]
@ RiMMER基于PHP的解决方案可能更容易阅读,编写和修改,但基于服务器的机制不需要在每个页面中插入支票。
答案 2 :(得分:0)
请注意,在使用date()
功能时也要考虑服务器的日期/时间设置,因为即使您的服务器的日期和时间与您的服务器的日期和时间不同,您也会在您的网站上进行日期和时间检查指定当天的限制时间(在您的学校),他们仍然可以查看内容。