-1
請我一直在嘗試登錄,但我似乎正在得到其他「未找到用戶名和密碼」。我不能使用此代碼登錄系統使用PDO
這裏是我的代碼登錄:
<?php
session_start();
require 'lib/password.php';
if(isset ($_POST['submit'])){
$errMsg = '';
$username = trim($_POST['username']);
$password = trim($_POST['password']);
if($username == '')
$errMsg = 'You must enter your username<br>';
if ($password == '')
$errMsg = 'You must enter your password<br>';
if($errMsg == ''){
$records = $conn->prepare('SELECT id, username, password FROM users WHERE username = :username');
$records->bindParam(':username', $username);
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
if(count($results) > 0 && password_verify($password, $results['password'])){
$_SESSION['username'] = $results['username'];
header('location:welcome.php');
exit;
}else{
$errMsg = 'Username and Password are not found<br>';
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
if(isset($errMsg)){
echo '<div style="color:#FF0000;text-align:left;font-size:12px;">'.$errMsg.'</div>';
}
?>
<form action="<?php echo $current_file; ?>" method="POST">
Username: <input type="text" name="username">
Password: <input type="password" name="password">
<input type="submit" name="submit" value="Log In">
<p>If you don't have an account, <a href="register.php">SIGNUP</a></p>
</form>
</body>
</html>
可能是什麼問題。請有人幫忙嗎?
您可以縮小哪些是失敗的'count($ results)> 0'或'password_verify($ password,$ results ['password'])''?當你創建他們的賬戶時,你是否也修改了用戶的用戶名和密碼? – chris85
確保密碼列足夠長以容納散列。很多次,這是問題的根源。如果時間不夠長,您需要更改列的長度,刪除現有數據並重新開始。使用建議長度的varchar(255)。如果你的列是50,那麼它會失敗。 –
有點互動會很好。只是......一小時。瀏覽器選項卡是好事。 –