session_start(); if(empty($_POST["username"]) || empty($_POST["password"])) { header("Location: login.php?err=1"); exit(); } require_once("dbconnect.php"); $sql = "SELECT * FROM users WHERE username=:username"; $stmt = $pdo->prepare($sql); $stmt->bindValue(":username", $_POST["username"], PDO::PARAM_STR); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); //入力情報がDB内に登録されているか確認 if(empty($row["username"]),password_verify($_POST['password'], $row['password'])){ //認証失敗 header("Location: login.php?err=2"); exit(); //session情報がある時はマイページヘリダイレクト if(isset($_SESSION["login"])){ header("Location: mypage.php"); } } else { //認証成功 sessionに値を保存 $_SESSION["login"] = htmlspecialchars($_POST["login"]); //postの値をエスケープ処理 header("Location: mypage.php"); } ?>
ハッシュ化してデータベースに登録したパスワードをlogin時に認証したいのですが、
このか書き方だとうまくいきません。
どのようにしたらよいのでしょうか、、?
回答1件
あなたの回答
tips
プレビュー