2011-05-26 162 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之間的額外空間。