2011-05-26 131 views
0
$con = mysql_connect("xx","xx","xx"); 
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db("ban", $con); 
$pass=$_POST["password"];-------------> line 10 
$mail=$_POST["email"];----------------->line 11 

$result31 = mysql_query 
("SELECT * FROM `users` WHERE email = '$mail'AND password='$pass'"); 

    $login_check = mysql_num_rows($result31); 
    echo $login_check; 

    mysql_close($con) 

这是一个登录系统的一部分,但它工作不正常PHP的登录系统问题

错误我得到的是: -

Notice: Use of undefined constant password - assumed 'password' in D:\wamp\www\phpadder.php on line 10 

Notice: Use of undefined constant email - assumed 'email' in D:\wamp\www\phpadder.php on line 11 

Warning: mysql_num_rows() expects parameter 1 to be resource, string given in  D:\wamp\www\phpadder.php on line 17 

有什么错呢?

+0

哪里是行代码 – Ibu 2011-05-26 09:42:50

+0

10我猜你在你的问题检查正确写的,如果你在你的代码 – Ibu 2011-05-26 09:49:01

+0

写同样的方式我写的一样有问题 – 2011-05-26 09:52:49

回答

1

在你的错误,它说你的密码变量之前忘了$ s​​ymbole,

而且

您的查询应该是

("SELECT * FROM `users` WHERE email = '$mail' AND password='$pass'"); 

你忘了添加邮件和之间的空间

也考虑在查询中使用之前首先转义您的值

$sql = "SELECT * FROM `users` WHERE email = '%s' AND password='%s'"; 
$sql = sprintf($sql,mysql_real_escape_string($mail),mysql_real_escape_string($pass)); 

现在你可以因为你可能正在使用$_POST[password]$_POST[email]某处查询

$result = mysql_query($sql); 
1

您所看到的错误。
但是,这些都只是通知,如果你读得很好,你会看到,他们将有同样的效果,用他们周围引号(你真的应该!)

,您的查询也是不正确的,这将创建一个有效的查询:

$result31 = mysql_query ("SELECT * FROM用户WHERE email = '$mail' AND password='$pass'");

'$mail'AND之间的额外空间。