我正在使用 SQLite 创建一个简单的 PHP 登录系统,当用户发布 HTML 表单时,无论他们输入什么,系统都会将他们引导至“仅限成员(member)的页面”。这是我的表单处理代码:
<?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";
}
?>
帮助!
最佳答案
我觉得应该是...
if ($result->rowCount() > 0) ...
AND:使用准备好的语句来避免 SQL 注入(inject),不要在您的数据库中存储未加密的密码,这是一个巨大的安全问题。
关于PHP/SQLite 接受不正确的发布值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15192157/