我正在创建一个新的登录脚本/ members目录。PHP错误 - 登录脚本
我从头开始创建它没有任何框架(关于这个问题的建议也将不胜感激)。
的情况:
// Look up the username and password in the database
$query = "SELECT admin_id, username FROM admin WHERE adminname = '$admin_user' AND password = SHA1('$admin_pass')";
$data = mysqli_query($dbc, $query);
if (mysqli_num_rows($data) == 1) {
这段代码一直给我一个错误(尤其是最后一行):
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home8/craighoo/public_html/employees/security/dir_admin.php on line 20
当呼应查询我得到:
SELECT admin_id, adminname FROM admin WHERE adminname = 'admin' AND password = SHA1('password')
编辑: 感谢大家。问题出在我的数据库列名和我引用的列名。
我假设你正在使用PHP会议确保运行(如果你不应该!)会话成功登录后的session_regenerate_id()以防止已知漏洞。 – TravisO 2010-04-14 18:04:06
而不是在数据库中运行SHA散列,我建议您使用PHP的SHA函数,特别是如果数据库服务器位于另一个盒子上,因为您将密码从Web服务器以纯文本的形式发送到数据库,即使它在您的网络,它仍然是一个漏洞。 – TravisO 2010-04-14 18:05:49
旁注:您可能需要查看一下准备好的语句(http://php.net/manual/en/pdo.prepared-statements.php)以避免SQL注入攻击。 – pinkgothic 2010-04-14 18:08:39