我的sql或php有什么问题吗?(无法登录)
我无法从我自己创建的函数我的sql或php有什么问题吗?(无法登录),php,sql,login,Php,Sql,Login,我无法从我自己创建的函数尝试\u login()中获得任何结果。有人能找出这段代码有什么错误吗?它只对我在数据库中创建的一个用户有效。我想得到一个布尔值作为回报,然后检查结果是否为真,然后将其存储到会话中,然后将用户重定向到特定页面。请帮忙 代码: 屏幕截图:假设您的密码是abc'123——您知道,它是字母、数字和符号的良好组合 mysqli\u real\u escape\u string将其转换为abc\123 md5然后使其成为af94b3b7388e50429710ed345b58c01
尝试\u login()
中获得任何结果。有人能找出这段代码有什么错误吗?它只对我在数据库中创建的一个用户有效。我想得到一个布尔值作为回报,然后检查结果是否为真,然后将其存储到会话中,然后将用户重定向到特定页面。请帮忙代码:
屏幕截图:假设您的密码是abc'123——您知道,它是字母、数字和符号的良好组合
mysqli\u real\u escape\u string
将其转换为abc\123
md5
然后使其成为af94b3b7388e50429710ed345b58c01c
但在数据库中,密码abc'123应加密为bb7e1fc94ff2a3e8d2d79c8ab055da60,这是明显不同的
尝试在mysqli\u real\u escape\u字符串之前移动md5
调用
编辑:您的第一个用户工作,因为密码是fishman001
然而,第二个是空字符串。您可能正在使用if(空($\u POST['password'])
或类似工具来查看是否提交了密码。空字符串将无法通过此测试
附:彩虹桌。爱他们。现在停止使用MD5。假设您的密码是abc'123
——您知道,它是字母、数字和符号的良好组合
mysqli\u real\u escape\u string
将其转换为abc\123
md5
然后使其成为af94b3b7388e50429710ed345b58c01c
但在数据库中,密码abc'123应加密为bb7e1fc94ff2a3e8d2d79c8ab055da60,这是明显不同的
尝试在mysqli\u real\u escape\u字符串之前移动md5
调用
编辑:您的第一个用户工作,因为密码是fishman001
然而,第二个是空字符串。您可能正在使用if(空($\u POST['password'])
或类似工具来查看是否提交了密码。空字符串将无法通过此测试
附:彩虹桌。爱他们。现在停止使用MD5。MD5不是加密密码的好方法。如果您有PHP5.5,请查看password\u hash
函数因为前面有一个无条件的返回,所以永远不会到达code>。var\u dump($row)
,看看这会给你带来什么。@NiettheDarkAbsol很好,但这似乎不是一个错误,是吗?表成员中是否有列“name”
?md5不是加密密码的好方法。如果您有PHP5.5,请查看password\u hash
函数因为前面有一个无条件的返回,所以永远不会到达code>。var\u dump($row)
,看看这会给你带来什么。@NiettheDarkAbsol很好,但这似乎不是一个错误,是吗?表成员中是否有列“name”
?但这仍然很重要,或者,如果有人在密码中使用“a”,你会遇到问题。谢谢,但不是我想要的。实际上,我总是使用密码作为第二个参数,但字符串不是空的。只需将该用户的密码更改为非“无”的密码即可。然后停止使用MD5,或者至少在你的散列中添加盐。这仍然很重要,但是如果有人在密码中使用“a”,你会遇到问题。谢谢,但不是我想找的。实际上,我总是使用密码作为第二个参数,但字符串不是空的。只需将该用户的密码更改为非“无”的内容即可。然后停止使用MD5,或者至少在散列中添加盐。
function attempt_login($theusername, $thepassword){
$host = 'localhost';
$username = 'root';
$password = '';
$database = 'website';
$con = mysqli_connect($host, $username, $password, $database);
$theusername = mysqli_real_escape_string($con, $theusername);
$thepassword = mysqli_real_escape_string($con, $thepassword);
$thepassword = md5($thepassword);
$query = "SELECT * FROM members WHERE username = '{$theusername}' AND password = '{$thepassword}'";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_array($result);
return isset($row['name']);
mysqli_close($con);
}