我知道这可以在mysql中完成,但我希望将IP存储在php或文本文件中,这对我来说有点困难,因为我不太了解。
$ SESSION用于记录日志,但是单击html按钮后24小时如何存储和禁止它。 非常感谢
答案 0 :(得分:0)
类似的事情应该可以解决。
我们将访问者的IP和禁令到期的时间写入文本文件。然后,我们加载它并检查它们是否在该文件中,并且仍然被禁止。
function ban()
{
$ip = $_SERVER['REMOTE_ADDR'];
file_put_contents(
'bans.txt',
sprintf("%s;%s\n", $ip, (new DateTime())->add(new DateInterval('PT24H'))->getTimestamp()),
FILE_APPEND | LOCK_EX);
}
function checkBan()
{
$ip = $_SERVER['REMOTE_ADDR'];
$bans = file('bans.txt');
foreach ($bans as $ban) {
$banExpiry = (int) explode(';', $ban)[1];
if ($banExpiry < time()) {
continue;
}
$bannedIp = explode(';', $ban)[0];
if ($bannedIp === $ip) {
return true;
}
}
return false;
}