Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql数据库中的PHP ip检查数组?_Php_Mysql_Sql_Post_Ip - Fatal编程技术网

sql数据库中的PHP ip检查数组?

sql数据库中的PHP ip检查数组?,php,mysql,sql,post,ip,Php,Mysql,Sql,Post,Ip,所以我有这段代码(来自phpacademy),我用它来手动添加尝试访问我的论坛的垃圾邮件机器人的IP。然后我有了这段代码,它将阻止IP访问我的页面,因为它在标题中是“必需的” <?php $deny = array("1.1.1.9", "9.9.9.9", "333.333.333"); if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) { header("location: http://www.google.com/");

所以我有这段代码(来自phpacademy),我用它来手动添加尝试访问我的论坛的垃圾邮件机器人的IP。然后我有了这段代码,它将阻止IP访问我的页面,因为它在标题中是“必需的”

<?php
 $deny = array("1.1.1.9", "9.9.9.9", "333.333.333");
 if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
     header("location: http://www.google.com/");
     exit();
 } 
?>
但我得到了“警告:mysql_num_rows()期望参数1是资源,布尔值在第8行的/path/7.php中给出 Ip不在数据库中“

EDIT2:
修好了,我在做SELECT*FROM fieldinsteadoftable,其中field=。。。等等。

从长远来看,一点错误检查将对您有所帮助。尝试此操作以查看数据库是否出现任何错误

mysql_查询返回的$result可能为“false”,因为查询字符串中存在错误或数据库表引用不匹配。因为您没有为mysql_num_行提供资源,所以它正确地抛出了错误。在继续之前,您需要检查$result是否有错误

注意:为了说明这一点,mysql_u函数已被弃用,您需要远离它们。请参阅PHP文档


好。。。从哪里开始$_服务器['REMOTE_ADDR']不是一个数组,那么为什么要在它上面使用in_数组呢$_服务器是一个数组,但您正在向in_数组中输入一个返回字符串的数组的键。之后,您是否要求mysql查询循环查找IP地址?你已经有数据库了吗?你尝试了什么?哦,对不起,我希望$deny是我数据库中包含IP的数组。是的,我有一个数据库(msql),可以连接到它。我需要代码扫描“first_name”(ip表)表中列出的值,并对照远程用户进行检查_ADDR@Rottingham我建议您参考_array中的
文档。因为参数是:
bool In_array(mixed$needle,array$haystack[,bool$strict=FALSE])
OP正在适当地使用
In_array
。@Jessica我完全倒读了这一行。我靠4小时的睡眠生活所得到的。谢谢,您将不得不做出努力,并展示您用于查看数据库的代码。很抱歉,我的评论被上面的其他评论淹没了,我已经弄明白了。既然你是唯一的答案,我就给你:)。
mysql_connect("localhost", "mydatabase", "mydatabasespassword") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$query = "SELECT * FROM first_name WHERE first_name='$ip'";
$result = mysql_query($query);

if (mysql_num_rows($result) > 0) {
  echo "Ip is already in database";
} else { 
  echo "Ip is not in database";
}
mysql_connect("localhost", "mydatabase", "mydatabasespassword") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$query = "SELECT * FROM first_name WHERE first_name='$ip'";
$result = mysql_query($query);

// ADD ERROR CHECKING HERE
if (!$result) {
    var_dump(mysql_error());
    return;
}

if (mysql_num_rows($result) > 0) {
  echo "Ip is already in database";
} else { 
  echo "Ip is not in database";
}