2016-06-13 137 views
-1

我想我錯過了一個小細節,但我無法弄清楚什麼。我的數據庫100%確定。我的register.php頁面完美加載數據。當我嘗試設置登錄系統時,我收到了相同的回顯「無效的電子郵件或密碼」,我輸入了好的信息或錯誤(只是爲了檢查)。在某個點。php mysql登錄系統問題

我改變了代碼,看看我是否可以從我的數據庫發佈數據到我的頁面,它的工作完美,所以我想我的PDO連接到數據庫是好的。那爲什麼我總是對這兩種情況有相同的迴應?

<?php 

if (isset($_POST['submit'])){ 

$db_server = "localhost"; 

$db_user = "root"; 

$db_password = ""; 

$db_name = "newsite"; 

try{ 

$conn = new PDO("mysql:host=$db_server;dbname=$db_name", $db_user, $db_password); 

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    } 
catch(PDOException $e){ 

     echo "Connection failed: " . $e->getMessage(); 
    } 


if (!empty($_POST['email']) && !empty($_POST['password'])){ 

$req = $conn->prepare('SELECT id,email, password FROM users_tb WHERE email= :email'); 

$req->bindParam(':email',$_POST['email']); 

$req->execute(); 

$result= $req->fetch(PDO::FETCH_ASSOC); 

    if (count($result)>0 && password_verify($_POST['password'], $result['password'])){ 

    echo "Alleluia!"; 

    }else{ 

    echo "invalid email or password"; 
    } 

}  
} 

?> 

的用於

<body> 
    <form method="POST" action="login.php"> 
     <table width="400" border="5" align="center"> 
      <tr> 
       <td colspan="5">Login</td> 
      </tr> 
      <tr> 
       <td align="center">Email</td> 
       <td><input type="text" name="email"></input></td>     
      </tr> 
      </tr> 
      <tr> 
       <td align="center">Password</td> 
       <td><input type="password" name="password"></input></td>      
      </tr> 
      </tr> 
      <tr> 
       <td><input type="submit" name="submit" value="sign up"></input></td>      
      </tr> 
     </table>   
    </form> 
</body> 

+0

請提供您的表格。 –

+0

http://php.net/manual/en/function.error-reporting.php並確保密碼欄的長度是60+,否則它會對你無聲無息。 –

+0

檢查你給出的表名,並檢查你給出的按鈕名稱 – user3386779

回答

0

的問題是,你正在使用password_verify它驗證密碼哈希相匹配。

查看你的意見,雖然你沒有存儲散列,但你存儲的是實際的密碼0987654

所以,輸入密碼進入數據庫時​​,你必須保存的

password_hash("your_password", PASSWORD_DEFAULT)的結果,其中your_password是您的密碼,而不是僅僅存儲的值,如0987654

你的哈希應該是60個字符由默認情況下,它應該看起來像...

$2a$04$PnJr5Vo/EDwbCV0z16ceyuj.z4Cw..6L/0cfFPgTCPv0un0qBp.qm

+0

抱歉,花了這麼久,我終於通過改變爲mysqli連接thx大家!!!! – Juju