简单的密码验证功能无效

时间:2018-04-06 15:50:37

标签: php mysql

就是这样:

function password_matches($username, $password){
    //precon: user_exists($username)
    $u = $GLOBALS['conn']->real_escape_string($username);
    $q = "SELECT password FROM users WHERE username = '$u'";
    $result = mysqli_query($GLOBALS['conn'], $q);
    $result2 = mysqli_fetch_field($result);
    return ($result2 == $password);
}

如果您认为这应该有用,请告诉我,我知道我的问题可能会出现在此功能之外的其他地方,但我认为这种可能性较小。

1 个答案:

答案 0 :(得分:0)

虽然您执行此操作的方式存在很多问题,但您也不知道如何正确使用mysqli功能,因此我会写一个答案与此相关,因为您需要知道其他任务。

mysqli_fetch_field返回有关结果中字段的元数据,而不是值。要获取实际数据,请使用mysqli_fetch_assoc

$row = mysqli_fetch_assoc($result2);
return $row['password'] == $password;