如何从MySQL数据库中获取字符串以与PasswordVerify()配合使用?

因此,我有一个存储ID,用户名和密码的数据库。密码是使用php的password_hash()功能存储的。该部分工作正常,并且已成功将其与哈希一起存储在数据库中。现在我要使用该password_verify()功能。我似乎无法正确地从数据库中获取字符串值,以将其与该函数一起使用。


$db由于我已经在其中存储了一些东西,因此数据库()的设置正确。数据库中的列仅是ID,用户名和密码。$ username和$ password是用户登录时填写的内容。


<?php

    if (count($errors) == 0) { // Everything correct, so verify pw

        $sql = $db->query("SELECT password FROM users WHERE username='$username'");

        if ($sql->num_rows > 0 ){

            $hashedpass = $sql->fetch_array();

            if (password_verify($password, $hashedpass['password'])); {

                $msg = "Username and password are correct";

            } else {

                $msg = "Incorrect";

        } else {

            $msg = "Incorrect";

    }

?>


元芳怎么了
浏览 195回答 2
2回答

炎炎设计

在这里获取数据后,创建$hashedpass一个数组:$hashedpass&nbsp;=&nbsp;$sql->fetch_array();然后,您将$hashedpass['password']使用表中的列名与之进行比较:password_verify($password,&nbsp;$hashedpass['password'])此外小鲍比(Little Bobby)说,您的脚本有遭受SQL注入攻击的危险。。即使转义字符串也不安全

白板的微信

$hashedpass = $sql->fetch_array();为您提供一个具有所选列名的关联数组。您应该通过选择正确的元素来获取值-$hashedpass['password']
打开App,查看更多内容
随时随地看视频慕课网APP