使用PHP,mysql和PDO访问数据库时使用哈希密码登录问题。 [英] Login problem with hash password using PHP, mysql and PDO for accessing database.

查看:128
本文介绍了使用PHP,mysql和PDO访问数据库时使用哈希密码登录问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨!



我创建了一个带有哈希的登录表单,但是当我尝试登录时,即使输入了错误的密码也总是返回true。以下是我的代码。



<?php 
session_start();
include(../ config / db_connection.php);

$ un = $ _ POST ['username'];
$ pw = $ _ POST ['password'];
$ password_hash = password_hash($ pw,PASSWORD_BCRYPT);

$ stmt = $ db-> prepare(从sys_user选择密码WHERE用户名=?AND密码=?);
$ stmt-> execute(array($ un,$ pw));
$ row_count = $ stmt-> rowCount();

if(password_verify($ pw,$ password_hash)){
$ _SESSION [username] = $ un;
echo正确;
}
else {
echouser:。 $取消。 <峰; br> 中;
echopass:。 $ password_hash。 <峰; br> 中;
echo用户名或密码错误;
}
?>





请帮帮我。提前谢谢。



我尝试过:



A很多操作我的代码。

解决方案

un =


_POST ['username'];


PW =

Hi!

I have created a login form with hashing but when I try to login it always return true even I input a wrong password. Below is my code.

<?php
session_start();
include("../config/db_connection.php");

$un=$_POST['username'];
$pw=$_POST['password'];
$password_hash=password_hash($pw, PASSWORD_BCRYPT);

$stmt = $db->prepare("SELECT password from sys_user WHERE username=? AND password=?");
$stmt->execute(array($un, $pw));
$row_count = $stmt->rowCount();

if (password_verify($pw, $password_hash)) {
    $_SESSION["username"]=$un;
    echo "Correct";
}
else {
    echo "user: " . $un. "<br>";
    echo "pass: " . $password_hash. "<br>";
    echo "Wrong Username or Password";
}
?>



Please help me. Thank you in advance.

What I have tried:

A lot of manipulation to my code.

解决方案

un=


_POST['username'];


pw=


这篇关于使用PHP,mysql和PDO访问数据库时使用哈希密码登录问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆