2013-07-20 48 views
2

我知道這已被問了很多,但我似乎無法爲我找到正確的答案。在PHPMyAdmin中,用戶名「user」和密碼「test」存在 - 但由於某種原因,它一直說它沒有。代碼的輸出是:MySQL/PHP的:無法從數據庫中選擇,但元素存在

成功連接到數據庫的電子郵件:*用戶*密碼:*測試*的用戶名和密碼不匹配

這裏是代碼:

$con = new mysqli('somewhere.com','admin','*****','nameofdb'); 
    if($con->connect_errno > 0){ 
     die('Unable to connect to database [' . $con->connect_error . ']'); 
    } 
    else{ 
     echo "Successfully connected to DB "; 
    } 
$email = mysqli_real_escape_string($con, $_POST['eml']); 
     $password = mysqli_real_escape_string($con, $_POST['pwd']); 
     //$encrPassword = md5($password); 


     $login = $con->query("SELECT * 
          FROM logininfo 
          WHERE email = $email 
          AND password = $password"); 
     if($login == FALSE){ 
      echo " email:*$email* "; 
      echo " password:*$password* "; 
      //echo " password:*$encrPassword* "; 

      echo "Username and Password does not Match"; 
     } 
     else { 
      echo "Hey this works"; 
     //Check if user is logged in, if not then redirect.  
      /*session_start(); 
      if($_SESSION['loggedin'] == FALSE){ 
       $_SESSION['loggedin'] = TRUE; 
       $_SESSION['username'] = $username; 
      }*/ 
      header("Location: ../browse/index.php"); 
     } 
     mysqli_close($con); 

回答

0

查詢變量是否必須在它們周圍加引號?

SELECT * FROM sometable WHERE somecol ='$ someVar'AND someothercol ='$ someothervar';

0

有錯誤在查詢中,如果回顯查詢並且在mysql上測試它可能會更容易,您可以這樣做:

$query = "SELECT * 
      FROM logininfo 
      WHERE email = $email 
      AND password = $password"; 
echo $query; 

祝你好運!

0

兩個簡單的步驟 1.在phpmyadmin中檢出數據庫中的那些用戶名和密碼與您輸入的用戶名或密碼相匹配。如果它是echo查詢以知道查詢內部是什麼。然後 2..if是要確保,如果你正在使用註冊md5加密,如果你使用的是那麼像

$password=md5($password); 
+0

解密它的標誌我是用MD5加密,但隨後它拿出來幫助調試處理。每當我回應我得到的查詢:DB SELECT * FROM用戶WHERE電子郵件=測試和密碼=測試 – user2597843

+0

與db中的密碼長度不應該太短,在註冊和登錄都刪除加密然後嘗試。 –

+0

我刪除了所有加密。沒有運氣。 :| – user2597843

相關問題