2010-10-22 24 views
-1

我已經創建了一個表單並使用PHP驗證了所有內容,但無法弄清楚如何驗證數據庫中的電子郵件。如果我在數據庫中輸入了用戶名,我希望它顯示一個錯誤。我有connect.php和使用數據庫驗證電子郵件

只是一個例子 -

這裏就是我如何驗證密碼 -

if(!empty($_POST['password'])) 
{ 
if($_POST['password'] != $_POST['cpass']) 
{ 
    $errors[] = 'The password and confirm password do not match.'; 
} 
else 
{ 
    $p=trim($_POST['password']); 
} 
} 

這裏就是我想要做的事 -

$getusername = "SELECT username FROM users WHERE ($u,$username)"; 
if($getusername) 
{ 
    echo 'Username is already in use.'; 
} 
else 
{ 
    $g=trim($_POST['username']); 

}

這個結果出現在PARSE ERROR中。

+0

你知道如何用WHERE語句運行SELECT查詢嗎? – 2010-10-22 21:15:53

+0

請將您的問題重寫一遍。很難理解你在問什麼。 – 2010-10-22 21:16:52

+0

我知道如何運行選擇與哪裏...下一步? – Johnson 2010-10-22 21:19:09

回答

1
// first define the username from the $_POST variable 
// make sure to escape the value to prevent SQL injection 
$username = mysql_real_escape_string(trim($_POST['username'])); 

// select a user with the posted username 
$sql = "SELECT username FROM users WHERE username = '$username' LIMIT 1"; 

// run the query 
$res = mysql_query($sql) or die(mysql_error()); 

// see if there's a result 
if (mysql_num_rows($res) > 0) { 
    echo 'This username is already taken'; 
} else { 
    // .. do stuff 
}
+0

哦,我的上帝....非常感謝你..它的工作......爲最佳答案付出。 – Johnson 2010-10-23 09:43:11

+0

因爲我是初學者,你能解釋爲什麼你用LIMIT 1嗎?謝謝。 – Johnson 2010-10-23 09:43:44

+0

有多種方式可以使用[LIMIT](http://dev.mysql.com/doc/refman/5.0/en/limit-optimization.html),但在這種情況下,想法是可以中止查詢當找到單個結果時。既然我們正在尋找可能的重複,那麼單一的結果已經足以讓我們確定這是一個愚蠢的行爲;沒有任何進一步搜索的意義。在這種情況下,它可能不會在速度上產生很大的差異,但如果您正在搜索大量記錄,它可能會有所作爲。 – Alec 2010-10-24 14:44:31