如何使用in_array替代数据库而不是数组
问题描述:
我有一个IP地址阵列,我使用in_array
来拒绝以下代码中的人员。如何使用in_array替代数据库而不是数组
$deny = array("111.222.333.444","999.555.444.222");
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
header("location: http://google.com/");
exit();
}
是否有替代in_array
使用数据库。如果我有一个IP地址数据库,我该如何检查数据库中的IP地址并使用标题重定向?
答
假设的MySQLi:
$query = "SELECT count(*) AS denied
FROM table_of_ips
WHERE ip = '".mysqli_real_escape_string($link, $_SERVER['REMOTE_ADDR'])."'
LIMIT 1";
$result = mysqli_fetch_assoc(mysqli_query($link, $query));
if ($result['denied']) {
header("location: http://google.com/");
exit;
}
从本质上说,只需选择其中IP客户端IP匹配,如果你得到一个结果,它拒绝。
只需使用用户的IP查询数据库,并且如果得到拒绝访问的结果。 – PeeHaa 2011-12-25 22:56:36