【发布时间】:2013-05-03 08:44:01
【问题描述】:
我有一个 PHP 登录系统,我在其中使用以下查询来比较用户名和密码:
$mQuery = $mysqli->query("SELECT * FROM users WHERE user = '" .
$mysqli->real_escape_string(md5($_POST['user'])) ."' AND pass= '" .
$mysqli->real_escape_string(md5($_POST['pass'])) . "'");
除了“用户”和“通行证”之外,用户行中还有其他字段,例如“姓名”和“电子邮件”。如何将所有这些字段放入一个数组中?
【问题讨论】:
-
您正在使用 MD5 对您的密码进行哈希处理?不谢谢。您不妨使用纯文本,因为没有盐,这是完全无用的。您还错误地使用了
mysqli,其中任何用户数据都应使用bind_param 注入以避免SQL injection bugs。您还对用户名进行哈希处理是完全超现实的,因为我以前从未见过这样做。 -
为什么
MD5你的用户名? -
这只是暂时的。在找到行解析的解决方案后,我正在修复它们。
-
解决方法是阅读mysqli文档。那里有很多很好的使用例子。