指定されたユーザー名がテーブル「users」にあるかどうかをチェックするスクリプトを作成しようとしていますが、「if」ステートメントは常にfalseを返します。usersテーブルには、すべてのユーザーを一覧表示する「username」列が1つだけあります。私は何が間違っているのですか?
$dbh = new PDO("sqlite:db.sqlite");
$stmt = $dbh->prepare("SELECT username from users where username = :name");
$stmt->bindParam(":name", $user);
$stmt->execute();
if($stmt->rowCount() > 0)
{
//in the table
}
else{
//not in the table
}
スクリプト全体:
<?php
require_once 'mclogin.class.php';
$api = new MinecraftAPI();
$user = $_POST['user'];
$password = $_POST['pword'];
if($api->login($user, $password)){
print $user;
$dbh = new PDO("sqlite:db.sqlite");
$stmt = $dbh->prepare("SELECT username from users where username = :name");
$stmt->bindParam(":name", $user);
$stmt->execute();
if($stmt->rowCount() > 0)
{
echo "You are whitelisted";
}
else{
echo "You are not whitelisted";
}
}else{
echo "Bad login";
}
?>
情報を送信するページ:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<form name="input" action="login.do.php" method="post">
Username: <input type="text" name="user">
Password: <input type="password" name="pword">
<input type="submit" value="Submit">
</form>
</body>
</html>