2012-05-24 80 views
0

我有一個註冊表單,其中有一個字段登錄名。我想每個用戶都有唯一的登錄名,所以每當用戶點擊一個按鈕我想檢查數據庫。如果用戶輸入的登錄名已存在,我想顯示一個警告框,要求他嘗試另一個登錄名。我寫了下面的代碼。PHP:驗證表單並顯示警報

if($login != '') 
{ 
$query = "Select LoginName from register where LoginName='".$login."'"; 
$result = mysql_query($query); 
if($result) 
{ 
?> 
<script type="text/javascript"> 
alert("Login name exist"); 
</script> 
<?php 
} 
else 
{ 
insert into database 
} 
} 

這裏的問題是每次它顯示我的名稱警報已存在。它永遠不會進入其他部分。 請幫我看看這個

+2

在生產環境中使用該代碼之前,您可能需要查看[SQL注入](http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php)是和如何預防它。 – Tharabas

回答

0

第一,當你取那麼數據統計$行陣列 檢查,如果計數大於0則u顯示錯誤消息「用戶名已存在」

這樣就把如果條件和其他的寫插入數據

享受:)

+0

謝謝你vry很多:) – Amruta

5

即使沒有行返回,mysql_query($ query)返回的$結果也會存在。它只會在查詢無效或包含錯誤並且無法執行時失敗。

嘗試使用以下:

if(mysql_num_rows($result) > 0) 

mysql_num_rows將返回該查詢返回的行數。

友情提醒:不要忘記清理您的用戶輸入以防止SQL注入。

0

你的流程應該是這樣的:

<?php 
if($login != ''){ 
    $query = "Select LoginName from register where LoginName='".$login."'"; 
    $result = mysql_query($query); 
    if($result){ 
    if(mysql_num_rows($result) > 0) { 
?> 
     <!-- LoginName already exists, do something here --> 
     <script type="text/javascript"> 
      alert("Login name exist"); 
     </script> 
<?php 
    } 
    else { 
    // LoginName avaialable 
    // your logic for registering user goes here 
    } 
} 
else 
{ 
    // query not executed, handle this issue properly 
} 
} 
+0

它的工作.. thanx – Amruta

+0

@ user1400633:你應該讚揚一點upvote atleast! – Vishal

0

支票如果($結果['的LoginName]){ }