расположение заголовка PHP не будет работать - PullRequest
0 голосов
/ 08 марта 2012

Я попытался создать список запретов на основе ip, в котором ip-номера хранились в mysql. В основном я пытаюсь перенаправить заголовок, если IP-адрес пользователя в массиве, но он не будет работать. Что не так?

$ip_array = array();
$ip_ban_query = mysql_query("SELECT ip FROM banned_ips");
while ($deny = mysql_fetch_assoc($ip_ban_query)){

$add_ip = $deny['ip'];
$ip_array[] = $add_ip;

}
if (in_array ($_SERVER['REMOTE_ADDR'], $ip_array)) {
   header("Location: http://www.google.com/");
   exit();

}

1 Ответ

1 голос
/ 08 марта 2012

Мы можем значительно упростить ваш код здесь. Уменьшение сложности почти всегда устраняет ошибки. :)

// There are several different methods to accomplish this, and you really
// should be using statements here, but both are out of scope of this question.
$ipBanQuery = sprintf("SELECT ip FROM banned_ips WHERE ip = '%s'", mysql_real_escape_string($_SERVER['REMOTE_ADDR']));

$result = mysql_query($ipBanQuery);
if (mysql_num_rows($result)) {
  header('Location: http://www.google.com/');
  exit();
}

Это также зависит от того, где вы вызываете этот код. Будьте уверены, что это вызывается перед любым выводом в браузер - случайные пробелы, HTML или другая отладочная информация будут препятствовать отправке каких-либо дополнительных заголовков. Проверьте журнал ошибок вашего веб-сервера, чтобы увидеть, происходит ли что-то нехорошее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...