2017-02-09 76 views
-1

我想我只是缺少了問題的...PHP只顯示四分之三的消息

如果我運行這段代碼是應該顯示「用戶名已存在」是否已經有相同用戶名用戶輸入的內容。

但到目前爲止,它只顯示「成功註冊」,「請再試一次!」或「請填寫所有值」,但它從不顯示「用戶名已存在」..我在這裏有什麼錯誤?

<?php 

$username = $_GET['username']; 
$password = $_GET['password']; 

if($username == '' || $password == ''){ 
    echo 'please fill all values'; 
} 
else{ 
    require_once('dbConnect.php'); 
    $sql = "SELECT * FROM HL WHERE username='$username'"; 

    $check = mysqli_fetch_array(mysqli_query($con,$sql)); 

    if(isset($check)){ 
      echo 'username already exists'; 
    } 
    else{ 
     $sql = "INSERT INTO HL(username,password) VALUES('$username','$password')"; 
     if(mysqli_query($con,$sql)){ 
      echo 'successfully registered'; 
     }else{ 
      echo 'Please try again!'; 
     } 
    } 
mysqli_close($con); 
} 
+0

檢查'的var_dump($檢查)刪除isset;'通過提供現有的用戶名,並告訴 –

+0

不要直接插入變量到查詢。使用預準備的語句現在你很容易進行SQL注入。 – Ivar

+0

也不要發送用戶名和密碼到URL中。安全問題 –

回答

-1

試試這個

$sql = "SELECT * FROM HL WHERE username='$username'"; 

$check = mysqli_num_rows(mysqli_query($con,$sql)); 

if($check > 0){ //name is the column name for the column where names are stored 
echo 'username already exists'; 

最佳做法是使用存儲過程吧。

0

希望這有助於

$check = mysqli_fetch_array(mysqli_query($con,$sql)); 

    if($check){ 
      echo 'username already exists'; 
    } 

從條件

+0

我已將它從代碼中移除,但仍顯示「已成功註冊」..? –