0
"users"テーブルを持つデータベースがあります。ユーザーテーブルには、「user_id」、「user_first」、「user_last」、「user_email」、「user_phone」、「user_uid」、「user_password」という列があります。 「私は../index.php?login_not_good".Whatを実行する必要があります。SQLはデータベース結果を返しません
if (isset($_POST['submit'])) {
include 'dbh.inc.php';
$uid = $_POST['uid'];
$pwd = $_POST['password'];
if(empty($uid) || empty($pwd)) {
header("Location: ../index.php?login=empty");
exit();
} else {
try {
$sql = "SELECT * FROM users";
$result = $conn->prepare(
$sql . "WHERE user_uid = ?"
);
$result->bindParam(1, $uid, PDO::PARAM_STR);
$result->execute();
} catch (Exception $e) {
echo"Bad Query";
}
$resultCheck = $result->rowCount();
if ($resultCheck < 1) {
header("Location: ../index.php?login_not_good");
exit();
} else {
$row = $result->fetch(PDO::FETCH_ASSOC);
if($row) {
//De-hashing the password
$hashedPwdCheck = password_verify($pwd,$row['user_password']);
if ($hashedPwdCheck == false) {
header("Location: ../index.php?login=error");
exit();
} elseif ($hashedPwdCheck == true) {
//Log in the user here
$_SESSION['u_id'] = $row['user_id'];
$_SESSION['u_first'] = $row['user_first'];
$_SESSION['u_last'] = $row['user_last'];
$_SESSION['u_email'] = $row['user_email'];
$_SESSION['u_uid'] = $row['user_uid'];
header("Location: ../index.php?login=login_success");
exit();
}
}
}
}
} else {
header("Location: ../index.php?login=error");
exit();
}
問題は、私は、SQLデータベースに作成された私のUIDとパスワードでログインしようとすると、それが返されていますでしょうか?
を使用することができバリアントはpassword_verifyされているように()がエラーを生成しないのと同じパスワード – Deep
結果?前にスペースが必要です。 $ sql。 "WHERE user_uid =?"またはユーザー$ sql = "SELECT * FROM users"の後。 – tan
データベースに 'user_uid'の存在を確認するには、 –