로그인 페이지를 만들었지 만 입력 된 암호로 해시 된 암호를 확인하려고 할 때 오류 메시지가 나타납니다. Drew의 설명서와 함께 password_verify가 작동하지 않습니다 (password_hash)
<?php
session_start();
$pdo = new PDO(xxxx);
if(isset($_GET['login'])) {
\t $username = $_POST['username'];
\t $password = $_POST['password'];
\t
\t $statement = $pdo->prepare('SELECT * FROM users WHERE username = :username');
\t $result = $statement->execute(array('username' => $username));
\t $user = $statement->fetch();
\t //verify password
\t if ($user !== false && password_verify($password, $user['passwort'])) {
\t \t $_SESSION['userid'] = $user['id'];
\t \t die('Login succesfull');
\t } else {
\t \t $errorMessage = "Login error";
\t }
\t
}
if(isset($errorMessage)) {
\t echo $errorMessage;
}
?>
'$ password'와'$ user [ 'passwort']'에 예상되는 값을 가지고 있는지 확인하고, 등록 코드에서 문자열 조작 (즉, 이스케이프)을하지 않았는지 확인하십시오. – JimL
암호 열은 실제로 * passwort *라고되어 있습니까? (with a) – ShiraNai7
예, 왜냐하면 저는 독일인입니다. 내 테이블 헤더에서 "passwort"라고 쓰여 있습니다. – Tim