为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
元芳怎么了 2021-05-03 16:31:25
因此,我有一个存储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";    }?>
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

在这里获取数据后,创建$hashedpass一个数组:

$hashedpass = $sql->fetch_array();

然后,您将$hashedpass['password']使用表中的列名与之进行比较:

password_verify($password, $hashedpass['password'])

此外

小鲍比Little Bobby)说,您的脚本有遭受SQL注入攻击的危险。。即使转义字符串也不安全


查看完整回答
反对 回复 2021-05-14
?
白板的微信

TA贡献1883条经验 获得超3个赞

$hashedpass = $sql->fetch_array();

为您提供一个具有所选列名的关联数组。

您应该通过选择正确的元素来获取值-

$hashedpass['password']


查看完整回答
反对 回复 2021-05-14
  • 2 回答
  • 0 关注
  • 199 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号