我将登录页面转换为使用PDO
,但现在不起作用。我已经通过了各种代码示例,我无法弄清楚我要去哪里错了。这对我来说看起来很完美。此外错误报告已完全启用,但我没有得到任何错误。我刚刚得到页面的“浏览器错误”配置错误。仅供参考,这是一个SQL
分贝使用PDO登录失败并显示正确的信息
//代码
<?php
require ("../Android/connect_db.php");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$query_unpw = $db->prepare("
SELECT member_mast.company_name
FROM member_mast
WHERE username = ?
AND password = ?
");
//$username = $_POST['username'];
//$password = $_POST['password'];
$username = 'abc';
$password = 'abc';
$name = "name";
$query_unpw->bindValue(1, $username, PDO::PARAM_STR);
$query_unpw->bindValue(2, $password, PDO::PARAM_STR);
$query_unpw->execute();
$count = $query_unpw->rowCount();
if ($count > 0) {
while ($row = $query_unpw->$fetch(PDO::FETCH_ASSOC)) {
$name = $row['company_name'];
}
echo $name;
} else {
echo "Username/Password is invalid";
}
} catch(PDOException $e) {
die($e->getMessage());
}
?>
现在我已经能够注释掉不同的代码片段后找出的唯一的事情是,如果我注释掉的用户名和密码,这样
//$username = 'abc';
//$password = 'abc';
然后在页面加载,只是给我我else
回声“用户名/密码无效”。但是我不认为我使用他们错了,我知道他们是正确的。所以明显的问题是我瞎了,这里有什么问题?奖金问题是,因为我会在这些变量使用_POST
这些变量时,我是否正确地清理了用户输入? PDO
还真的很新,我想确保我正确地做到这一点。谢谢您的帮助!
也许你根本没有启用PHP错误?如果你不是通常得到500内部服务器错误,这是不完全有用的...尝试生成一个假的PHP错误。 – silkfire
您应该避免将密码存储在数据库中。相反,您应该为每个用户生成一个独特的盐,并使用它来散列密码。 – Paulpro
@Paulpro我不幸的有0控制。我没有设计这个数据库。我只是用它。这就是说,我是否正确地消毒这些投入? –