2014-11-02 122 views
0

我正在使用以下代碼來檢查用戶是否已經存在於MySQL數據庫中,但每次嘗試使用已經用戶名創建新帳戶它可以讓我創建它而不是返回錯誤信息。找不到方法來檢查用戶是否已經存在

<?php 
if(isset($_POST['B1'])){ 
    $user=$_POST['U']; 
    $email=$_POST['email']; 
    $pass=$_POST['P']; 
    $cpass=$_POST['CP']; 

    if($user!=null && $pass!=null && $cpass!=null && $email!=null){ 
     if($pass==$cpass){ 
      $sql="SELECT FROM users (username, email, password) WHERE username='$user'"; 
      $checkuser=mysql_query($sql); 
      if(mysql_num_rows($checkuser)>0){ 
        echo"This username has been already taken."; 
      }else{ 
       $query="INSERT INTO users(username, email, password) VALUES('$user','$email',md5('$pass'))"; 
      $result=mysql_query($query) or die("error3"); 
      mysql_close(); 
      echo "<center><h2>Thanks for have joined us, ".$user."!</h2><br></center>"; 
      echo"<center><h2>You are now ready to use your account.</h2><br></center>"; 
      echo"<center><a href='login.php' class='button specialp'>Let's get started</a></center>"; 
      } 
     } 
    }else{ 
     echo"<center><p><h2>Oops, something went wrong!<h2></p></center>"; 
     echo"<center><a href='signup.php' class='button specialp'>Try again</a></center>"; 
    } 

} 

?> 

我在做什麼錯?

+0

您的用戶名柱(和電子郵件一樣的東西),這絕對是獨一無二的。當你這樣做,你不能再添加用戶名,插入查詢將失敗。然後您可以簡單地檢查插入的執行是否正確 – baao 2014-11-02 21:47:13

+1

我不知道您是否使用了遺留的東西,但我會建議使用http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers PHP PDO擴展或使用http://codular.com/php-mysqli Mysqli擴展如果你可以 – JammyDodger231 2014-11-02 21:53:44

+0

謝謝大家!我遵循邁克爾的建議,它效果很棒!再次感謝! – gigapico00 2014-11-03 20:31:56

回答

0

在你的代碼段,

$sql="SELECT username, email, password FROM users WHERE username='$user'"; 
$checkuser=mysql_query($sql); 
if(mysql_num_rows() > 0) { 
...... 

嘗試更換該部分上面的代碼,看看在你的DB

相關問題