我想我錯過了一個小細節,但我無法弄清楚什麼。我的數據庫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>
請提供您的表格。 –
http://php.net/manual/en/function.error-reporting.php並確保密碼欄的長度是60+,否則它會對你無聲無息。 –
檢查你給出的表名,並檢查你給出的按鈕名稱 – user3386779