0

Web サイトにアクセスしたユーザーの IP を含むデータベース テーブルがあります。ページの IP 禁止システムを作成しようとしています。データベース テーブルからブロックされているとリストされている IP を、この特定のページにアクセスできない IP の配列にリストする必要があります。エラーが発生し続け、正しく動作させる方法がわかりません。これは私がこれまでに使用しているものです:

PHP:

$getBlockedUsers = mysqli_query($con,"SELECT ip FROM blog_comments WHERE blocked='yes'");
$separateIps = implode(", ", mysqli_fetch_array($getBlockedUsers));

if (in_array ($_SERVER['REMOTE_ADDR'], $separateIps)) {
   header("location: http://www.google.com");
   exit();
}
  • データベースに正しく接続しています
4

2 に答える 2

1
$getBlockedUsers = mysqli_query($con,"SELECT true FROM blog_comments WHERE blocked='yes' AND ip='" . $_SERVER['REMOTE_ADDR'] . "' LIMIT 1");

if ($getBlockedUsers->num_rows > 0) {
   header("location: http://www.google.com");
   exit();
}
于 2013-07-02T06:46:58.973 に答える
0

implode関数を削除し、

$separateIps = mysqli_fetch_all($getBlockedUsers, MYSQL_NUM);

in_arrayは、パラメーター 2 が配列であることを想定しています。使用implodeすると、配列ではなく文字列が取得されます。

于 2013-07-02T06:42:26.987 に答える