実現したいこと
昨日は、ユーザ名とパスワードでログイン出来ていたのですが、一日経つと出来なくなったので理由を教えて欲しい。xamppとハッシュ化したパスワードを使用しています。
発生している問題・分からないこと
一晩たったらログインできない
エラーメッセージ
error
1SQLSTATE[HY000] [1045] Access denied for user 'phpuser'@'localhost' (using password: YES) 2と出てしまう
該当のソースコード
<?php session_start(); require_once __DIR__ . '/inc/functions.php'; include __DIR__ . '/inc/header.php'; ?> <form method='post' action='login.php' class='loginform'> <p> <label for="username">ユーザ名:</label> <input type='text' name='username'> </p> <p> <label for="password">パスワード:</label> <input type='password' name='password'> </p> <input type='submit' value='送信する'> </form> <?php if(!empty($_SESSION['login'])) { echo "ログイン済です<br>"; echo "<a href=index.php>リストに戻る</a>"; exit; } if((empty($_POST['username'])) || (empty($_POST['password']))) { echo "ユーザ名、パスワードを入力してください。"; exit; } try { $dbh = db_open(); $sql = "SELECT password FROM users WHERE username = :username"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":username", $_POST['username'], PDO::PARAM_STR); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); if(!$result) { echo "ログインに失敗しました。"; exit; } if(password_verify($_POST['password'], $result['password'])){ session_regenerate_id(true); $_SESSION['login'] = true; header("Location: index.php"); }else{ echo 'ログインに失敗しました。(2)'; } } catch (PDOException $e) { echo "エラー!: " . str2html($e->getMessage()); exit; } header("Location: index.php");
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
パスワードはハッシュ化し、Phpmyadminから昨晩は設定しました
補足
特になし
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/08/06 02:01
2024/08/06 02:59 編集
2024/08/06 03:40
2024/08/06 03:59
2024/08/06 05:03
2024/08/06 06:07 編集
2024/08/06 09:23
2024/08/07 01:11