私の問題はコードの MySQL セクションにあると思います。少なくとも 1 つのテーブル行が true になるようにカウントし、if
それ以外の場合はステートメントを続行する必要がありelse
ます。コードを実行すると、エラーは表示されず、ページの上部にあるユーザー名とパスワードのほかに空白echo
のページが表示され、それらが通過しているかどうかを確認していました。私のコードは以下の通りです:
<?php
$myusername=$_POST['userName'];
$mypassword=$_POST['password'];
echo $mypassword;
echo "<br>" . $myusername;
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
try {
$conn = new PDO('mysql:host=localhost;dbname=timecard', 'username', 'password');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT COUNT(*) FROM employees WHERE `userName`= :userName AND `password`= :password');
$stmt->execute(array(':userName' => $myusername, ':password' => $mypassword));
} catch(PDOException $e){
echo'ERROR: ' . $e->getMessage();
}
$res = $conn->query($stmt);
if($res->fetchColumn() > 0){
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>