2011-12-25 43 views
1

我有一个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地址并使用标题重定向?

+0

只需使用用户的IP查询数据库,并且如果得到拒绝访问的结果。 – PeeHaa 2011-12-25 22:56:36

回答

1

假设的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匹配,如果你得到一个结果,它拒绝。

相关问题