0
私は自分のウェブサイトに基本的なログイン機能を実装しようとしています。私は、データベースからデータをフェッチし、ユーザー名とパスワードが正しいかそうでないかどうかを確認するために、次のコードを使用しています:配列を準備してデータをフェッチしてステートメントを選択する
$STH = $conn->prepare("SELECT * FROM users WHERE uid = '$uid'");
$STH->bindParam(':uid', $uid);
$STH->bindParam(':pass', $pass);
$uid = $_POST['uid'];
$pass = $_POST['pass'];
if($STH->execute()) {
if($row = $STH->fetch()) {
if ($row['pass'] == $pass) {
echo "Logged in Successfully <br>";
} else {
echo "Username or Password Incorrect<br>";
}
} else {
echo "<script>alert('Incorrect Username');</script>";
}
}
}
しかし、私はそれがデータベース内にあるにもかかわらず、エラーIncorrect Username
を取得しておきます。これは、クエリを実行した後にデータを取得する方法に何か問題があることを意味しますが、正確に何かを理解することはできません。
あなたは準備ができていない文を間違った方法で使用しています。私が書いた[PDOチュートリアル](https://phpdelusions.net/pdo)をお勧めします。 –
'WHERE uid = '$ uid'' <あなたが間違っていて、あなたのクエリに何もバインドしていない場所です。 –
マニュアルを読む、それははるかに良いhttp://php.net/pdo.prepared-statements –