【发布时间】:2011-12-13 00:35:31
【问题描述】:
我正在尝试让一个 PHP 脚本工作,它将人的 IP 与文本文件(每行一个 IP)进行比较。如果此人的 IP 不在文本文件中,那么他将被重定向到 denied.html。我知道我可以为此使用 .htaccess,但 IP 列表可能会变得非常非常长。
这是我目前的代码:
<?php
$ipArray = file('ip.txt');
unset($allowed);
foreach ($ipArray as $ipTest) if (substr_count($_SERVER['REMOTE_ADDR'],trim($ipTest)) != "0") $allowed = true;
if ($allowed != true) {
header('location: /declined.html'); // the banned display page
die();
}
?>
我希望能够在我只希望某些 IP 看到的每个页面中调用此脚本,这就是我尝试调用它的方式:
<? include('ip_allow.php'); ?>
当我的 IP 不在 ip.txt 中时,当我在 HTML 页面中调用 PHP 脚本时,它不会将我重定向到 /declined.html!我怎样才能解决这个问题?同样,我的问题不是如何使用 .htaccess,而是如何修复我的脚本!谢谢。
【问题讨论】:
-
不应该
unset($allowed);是$allowed = false;? -
为什么不使用
.htaccess? -
我不想用大量的 IP 填充 htaccess
-
@user1008120 填充文本文件有何不同?