こんにちは私はpdoを使ってデータベースからハッシュされたパスワードを返し、パスワードが保護されている間にログインできるようにしています。パスワードをハッシュするサインアップページを作成しました。私は今これを解体しようとしています。私は近いと思いますが、これは何度も同じ場所に止まっていますが、誰かが私のコードを完成させるのを助けてくれることを願っていましたか?ハッシュされたパスワードの検証とログインの確認pdo php
PHP致命的なエラー:キャッチされていないエラー:/var/www/html/login.php:54\nStackトレースのブール値でメンバ関数fetch()を呼び出します。\ n#0 {メイン} \ nスローイン/ライン54上のVAR/WWW/HTML/login.php、リファラ:http://172.16.62.211/login.php
if (isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
$q = $handler->prepare('SELECT * FROM users WHERE username = ?');
$query = $q->execute(array(
$username));
$_SESSION['username'] = $username;
$count = $q->rowCount();
if ($count == 1 -> fetch(PDO::FETCH_ASSOC)){
$hash_pwd = $count['password'];
$hash = password_verify($password, $hash_pwd);
if ($hash_pwd == 0) {
header("location: login.php?error=empty");
}
else {
$q = $handler->prepare('SELECT * FROM users WHERE username = ? && password = $hash_pwd');
$query = $q->execute(array(
$username,
$password));
$count = $q->rowCount();
if($count == 1){
$_SESSION['username'] = $username;
header("location: index.php");
return;
} else {
echo '<p class="error-message3">'.'<br>'.'<br>'."You have ented an incorrecct login!<br>Please try again.".'</p>';
}}}}
?>
*「今私はこれを解体しようとしています。」* - それはどういう意味ですか?どちらが線54ですか? –
クエリには1つのプレースホルダしかありませんが、 '$ q = $ handler-> prepare( 'SELECT * FROM users WHERE username =?&& password = $ hash_pwd');もう一つの理由で失敗しています。 –
@ Fred-ii-ログインを有効にするために、データベース内のハッシュされたパスワードをデハッシュしようとしています。 –