Php 如何查询数据库中的IP错误

Php 如何查询数据库中的IP错误,php,database,email,if-statement,ip,Php,Database,Email,If Statement,Ip,我正在努力做到,如果他们的IP在数据库中,那么他们就不能发送电子邮件。在php54_错误文件中,它说 [30-Dec-2012 18:25:26 Europe/Dublin] PHP Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:\inetpub\wwwroot\Submit.php on line 6 [30-Dec-2012 18:25:26 Europe/Dublin] PH

我正在努力做到,如果他们的IP在数据库中,那么他们就不能发送电子邮件。在php54_错误文件中,它说

[30-Dec-2012 18:25:26 Europe/Dublin] PHP Warning:  mysql_num_rows() expects parameter 1 to be resource, string given in C:\inetpub\wwwroot\Submit.php on line 6
[30-Dec-2012 18:25:26 Europe/Dublin] PHP Warning:  mysql_num_rows() expects parameter 1 to be resource, null given in C:\inetpub\wwwroot\Submit.php on line 7
我的PHP代码如下

<?php
include("connect.php");
mysql_select_db("ip", $con);
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$query = "SELECT * FROM ip WHERE ip='$ip'";
$result = mysql_num_rows($query);
if (mysql_num_rows($result) > 0) {
    echo "You have already registered!";
}
else { 
    echo"Your request has been sent!";
    $to = "admin@prisoneternity.org.uk";
    $subject = "Guard Application";
    $from = "guardapplication@prisoneternity.org.uk";
    $headers = "From:" . $from;
    $message = "IGN = " . $_POST["Username"] . "</br>\n\nage = " . $_POST["age"] . "</br>\n\nreason = " . $_POST["reason"] . "</br>\n\nHow many times have they been guard = " . $_POST["guard"] . "</br>\n\nOther Details = " . $_POST["text"];
    mail($to,$subject,$message,$headers);
    header ("Location: index.php?email=yes");
    session_start();
    mysql_query("INSERT INTO ip (IP) VALUES ('$ip')");
}
?>

在第二行,
mysql\u num\u rows
正在返回一个整数,因为
$result
变量已经在调用该函数了(如果有意义的话)。将其更改为:

$result = mysql_num_rows($query);
if ($result > 0) {
此外,您没有运行查询:

$query = "SELECT * FROM ip WHERE ip='$ip'";
将上述行更改为:

$query = mysql_query("SELECT * FROM ip WHERE ip='$ip'");

另一方面,
mysql.*
函数已被弃用。我将切换到
PDO
MySQLi
——示例可以在中找到

应该是:

$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
您没有运行
mysql\u query()
,而是调用了
mysql\u num\u rows()
两次。简单事故=o)顺便说一句,您应该使用或

此外:

echo“您的请求已发送!”;
$to=”admin@prisoneternity.org.uk";
$subject=“警卫应用程序”;
$from=”guardapplication@prisoneternity.org.uk";
$headers=“From:”$从…起
$message=“IGN=”$_发布[“用户名”]。“
\n\nage=“$_职位[“年龄”]。“
\n\n原因=”$_张贴[“原因”]。“
\n\n他们被保护了多少次?”$_立柱[“防护”]。“
\n\n其他详细信息=”$_POST[“text”]; 邮件($to、$subject、$message、$headers); 标题(“Location:index.php?email=yes”); 会话_start(); mysql_查询(“插入ip(ip)值(“$ip”)”;
应该是:

$to = "admin@prisoneternity.org.uk";
$subject = "Guard Application";
$from = "guardapplication@prisoneternity.org.uk";
$headers = "From:" . $from;
$message = "IGN = " . $_POST["Username"] . "</br>\n\nage = " . $_POST["age"] . "</br>\n\nreason = " . $_POST["reason"] . "</br>\n\nHow many times have they been guard = " . $_POST["guard"] . "</br>\n\nOther Details = " . $_POST["text"];
mail($to,$subject,$message,$headers);
//header ("Location: index.php?email=yes");
session_start();
echo"Your request has been sent!";
mysql_query("INSERT INTO ip (IP) VALUES ('$ip')");
$to=”admin@prisoneternity.org.uk";
$subject=“警卫应用程序”;
$from=”guardapplication@prisoneternity.org.uk";
$headers=“From:”$从…起
$message=“IGN=”$_发布[“用户名”]。“
\n\nage=“$_职位[“年龄”]。“
\n\n原因=”$_张贴[“原因”]。“
\n\n他们被保护了多少次?”$_立柱[“防护”]。“
\n\n其他详细信息=”$_POST[“text”]; 邮件($to、$subject、$message、$headers); //标题(“Location:index.php?email=yes”); 会话_start(); 回显“您的请求已发送!”; mysql_查询(“插入ip(ip)值(“$ip”)”;

您不能回显
标题()
会话启动()
之前的内容,而且在执行重定向时,回显的文本也不会被看到。你需要选择你想做的事情。我注释掉了上面的
标题()
,但您可以做相反的事情。另外,请确保对
\r
\n
字符的所有
$\u POST
值进行清理,以防止出现问题。

没问题!很高兴我能帮忙。:)
echo"Your request has been sent!";
$to = "admin@prisoneternity.org.uk";
$subject = "Guard Application";
$from = "guardapplication@prisoneternity.org.uk";
$headers = "From:" . $from;
$message = "IGN = " . $_POST["Username"] . "</br>\n\nage = " . $_POST["age"] . "</br>\n\nreason = " . $_POST["reason"] . "</br>\n\nHow many times have they been guard = " . $_POST["guard"] . "</br>\n\nOther Details = " . $_POST["text"];
mail($to,$subject,$message,$headers);
header ("Location: index.php?email=yes");
session_start();
mysql_query("INSERT INTO ip (IP) VALUES ('$ip')");
$to = "admin@prisoneternity.org.uk";
$subject = "Guard Application";
$from = "guardapplication@prisoneternity.org.uk";
$headers = "From:" . $from;
$message = "IGN = " . $_POST["Username"] . "</br>\n\nage = " . $_POST["age"] . "</br>\n\nreason = " . $_POST["reason"] . "</br>\n\nHow many times have they been guard = " . $_POST["guard"] . "</br>\n\nOther Details = " . $_POST["text"];
mail($to,$subject,$message,$headers);
//header ("Location: index.php?email=yes");
session_start();
echo"Your request has been sent!";
mysql_query("INSERT INTO ip (IP) VALUES ('$ip')");