我對我的登錄腳本有疑問。用戶存在時登錄錯誤
我已經使用PHP,看起來像這樣登錄腳本:
<?php
include 'headermet.php';
include 'database.php';
session_start();
if(isset($_SESSION['user_id'])){
header("Location: /");
}
if(!empty($_POST['username']) && !empty($_POST['password'])):
$records = $conn->prepare('SELECT id,username,password FROM users WHERE username = :username');
$records->bindParam(':username', $_POST['username']);
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
$message = '';
if(count($results) > 0 && password_verify($_POST['password'], $results['password'])){
$_SESSION['user_id'] = $results['id'];
header("Location: /");
} else {
$message = 'ERROR while trying to login';
}
endif;
?>
<body>
<h1 style = "margin-top:100px;">LOGIN</h1>
<?php if(!empty($message)): ?>
<p><?= $message ?></p>
<?php endif; ?>
<form action="login.php"= method="POST">
<input type="text" placeholder="Gebruikersnaam" name="username">
<input type="password" placeholder="Wachtwoord" name="password">
<input type="submit">
</form>
</body>
<?php include 'footer.php';?>
在我添加了一個錯誤消息,如果憑據不正確的代碼。該消息是$message = 'ERROR while trying to login';
使用sequelpro我加入的用戶名測試用戶:測試密碼:測試
好然後做一些調試,找出它出錯...是否'$結果[ '密碼']'包含的值? 'count($ results)'實際上更大的零? (順便說一句,你正試圖在你做這個檢查的時候獲取一個結果行 - 沒什麼意義。)'password_verify'的返回值是多少? ...你知道,找出爲什麼我的劇本做它做的絕對的基礎... – CBroe
你的php代碼是好的。檢查你的數據庫表或數據庫連接 –