我正在使用SQLite创建一个简单的PHP登录系统,当用户发布HTML表单时,系统会将它们引导到“仅限成员页面”,而不管它们输入的是什么。这是我的表单处理代码:
<?php
$username = $_POST["username"];
$password = $_POST["password"];
$database = new PDO("sqlite:database.sqlite");
$result = $database -> query("SELECT COUNT (*) FROM accounts WHERE username = '$username' AND password = '$password'");
if ($result > 0)
{
setcookie("session", "Cool", time()+3600);
header("location:index.php");
}
else
{
echo "Failure";
}
?>
帮助!
答案 0 :(得分:1)
我认为应该是......
if ($result->rowCount() > 0) ...
AND:使用预准备语句来避免SQL注入,不要在数据库中存储未加密的密码,这是一个巨大的安全问题。
答案 1 :(得分:0)
试试这个(你不应该需要计数,只是一个简单的逻辑陈述):
$query = "SELECT * FROM accounts WHERE username = :username AND password = :password";
$stmt = $database->prepare($query);
$stmt->execute(array(":username"=>$username, "password"=>$password));
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if($result)
{
//Success
setcookie("session", "Cool", time()+3600);
header("location:index.php");
}
// Not successful.
return null;