我有一个简单的登录脚本,这给我带来了一些麻烦。一旦验证了用户输入,就会运行这段代码:
$salt = mysqli_query($dbc, "SELECT salt FROM members WHERE Email='$email'");
$salt1 = $salt;//I'm not sure of the need for this line.
$hash = sha1($salt1 , $pass);
此代码从数据库中获取salt,然后使用它散列输入的密码,以便根据数据库检查密码。我遇到的问题是:
Warning: sha1() expects parameter 1 to be string, object given...
如何将查询转换为字符串。我知道我正在使用sha1,但这只是暂时的。我做的事情非常愚蠢;我最近才回到PHP,所以有谁知道该怎么做?
非常感谢!
答案 0 :(得分:2)
请记住,由mysqli_query
执行的SQL查询可能会在结果中返回多行。您可以通过调用mysqli_fetch_row
或类似行来检索这些行的内容。
另外,请注意SQL注入。您当前正在执行的查询容易受到攻击。
答案 1 :(得分:1)
您需要从查询中获取结果,以便将其用作数组。
$query= mysqli_query($dbc, "SELECT salt FROM members WHERE Email='$email'");
$row= mysqli_fetch_array($query);
$salt = $row['salt'];
答案 2 :(得分:0)
你可以这样做,只需替换这个
$row= mysqli_fetch_array($salt); // fetch the array
$salt1 = $row['salt'];
$hash = sha1($salt1 , $pass); // encrypt