$err_msg = ""; 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 AND password=:password"; $stmt = $pdo->prepare($sql); $stmt->bindValue(":username", $_POST["username"], PDO::PARAM_STR); $stmt->bindValue(":password", $_POST["password"], PDO::PARAM_STR); $stmt->execute(); //実行結果取得 $row = $stmt->fetch(PDO::FETCH_ASSOC); //usernameがDB内に登録されているか確認 if(empty($row["user"])) { header("Location: login.php?err=2"); exit(); } else { $err_msg = "失敗"; } ?> コード
<html lang="ja"> <head> <meta charset="utf-8"> <title>ログインページ</title> <link rel="stylesheet" href="css/style.css"> <meta name="viewport" content="width=device-width"> </head> <body> <form class="box" action="auth.php" method="post"> <h1>LOGIN</h1> <input type="text" name="u_id" placeholder="ID"> <input type="password" name="pass" placeholder="password"> <input type="submit" name="login" value="login"> <a href="signin.php">新規登録</a> </form> </body> </html> コード
入力したusernameとpasswordがデータベースに登録されているユーザネームとパスワードに一致していれば、ログインさせる処理を作りたいです。 sql文は合ってると思うのですが、どこが間違っているかわかりません。。 dbに登録されている値で入力をしたら、err=1が出てくるので、、最初のif文の if(empty($_POST["username"]) || empty($_POST["password"])) { header("Location: login.php?err=1"); exit(); が処理されているのかなと思います。 dbconnect.phpのデータベース接続情報はしっかり確認したので、間違ってないと思います。 教えて頂きたいです。 データベース名はmydb テーブル名 users karamu id username password の3つです 入力情報は、英数字で入力しています。
回答1件
あなたの回答
tips
プレビュー