Php登录错误密码或用户名错误

Php登录错误密码或用户名错误,php,mysql,Php,Mysql,嗨,当我尝试连接到一个帐户时,我面临一个严重的问题!!始终显示错误密码或用户名错误!我正在mysql中使用md5哈希密码!!以下是我的登录页面代码和mysql表查询图片: <?php session_start(); error_reporting(E_ALL); ini_set('display_errors', 1); include_once('module/config.php'); if(isset($_SESSION['id'])){ header("loc

嗨,当我尝试连接到一个帐户时,我面临一个严重的问题!!始终显示错误密码或用户名错误!我正在mysql中使用md5哈希密码!!以下是我的登录页面代码和mysql表查询图片:

    <?php 
session_start();
error_reporting(E_ALL); 
ini_set('display_errors', 1);
include_once('module/config.php');
if(isset($_SESSION['id'])){
    header("location: index.php");
}
if(isset($_POST['login'])){
    $identification = $_POST['username'];
    $identification = mysqli_real_escape_string($link, $identification);
    $password = $_POST['password'];
    $password = mysqli_real_escape_string($link, $password);

    if($identification == "" || $password == "")
        {
            echo "Error Username / Password Wrong !";
        }else {

            $sql ="SELECT * FROM usrr WHERE usrname='$identification' LIMIT 1";
            $query = mysqli_query($link, $sql);
            if (!$query ) { die(mysqli_error($link)); } 
            $row = mysqli_fetch_array($query);
            $id= $row['uid'];
            $db_pss =$row['usrpass'];
            if (password_verify($password, $db_pss)){
                $_SESSION['id'] = $id;
                $_SESSION['name'] = $row['name'];
                header("location: index.php");

            }else{
                echo "Error Username / Password Wrong !";
            }

        }
}


?>


<form method="post">
<label>username : </label>
<input type="text" name="username"><br/>
<label>password : </label>
<input type="password" name="password"><br/>
<input type="submit" name="login" value="login">

</form>

用户名:

密码:

password\u verify
password\u hash
上工作,而不是在
md5
hash上工作

请检查文档:

更新:

问题实际上在于注册或在DB上添加用户登录时不显示

当用户注册时,请使用此

$pwHash = password_hash($userPasssword, PASSWORD_DEFAULT);
$pwHash
是您应该保存在DB上的哈希md5


然后您可以使用上面的登录代码。无需更改。

password\u verify
password\u hash
上工作,而不是在
md5
hash上工作

请检查文档:

更新:

问题实际上在于注册或在DB上添加用户登录时不显示

当用户注册时,请使用此

$pwHash = password_hash($userPasssword, PASSWORD_DEFAULT);
$pwHash
是您应该保存在DB上的哈希md5



然后您可以使用上面的登录代码。无需更改。

请不要使用
md5
作为密码。请使用,因为在某些情况下,您仍然可以绕过
mysqli\u real\u escape\u string
。还要注意的是,你并没有像Eddie所说的那样逃避你的
$\u POST['username']
,永远不要使用md5进行密码散列。使用PHPs
password\u hash()
password\u verify()
您能帮我指定更具体的操作方法吗!我不懂这种强烈的语言,我不是一个编码员,我只是有一点知识,我只是在使用预先制作的网站!非常感谢much@ManuelMannhardt我该怎么做?请不要使用
md5
作为密码。请使用,因为在某些情况下,您仍然可以绕过
mysqli\u real\u escape\u string
。还要注意的是,你并没有像Eddie所说的那样逃避你的
$\u POST['username']
,永远不要使用md5进行密码散列。使用PHPs
password\u hash()
password\u verify()
您能帮我指定更具体的操作方法吗!我不懂这种强烈的语言,我不是一个编码员,我只是有一点知识,我只是在使用预先制作的网站!非常感谢much@ManuelMannhardt我怎么能做到呢?哦,我没看到你准确地回答了这个问题,拿我的投票作为补偿:)我很抱歉我是个笨蛋,因为我不擅长编码和一些事情,我只知道一些小的基础知识,我正在使用预先制作的网站!那么,上面的代码有什么问题吗?我需要更改或缩短一些内容:您不能在没有密码的情况下使用password\u verify(),因为您发布了您使用md5进行散列的消息。@AhmedHamada so而不是
$pwHash=md5('password')
您可以
$pwHash=password\u散列(“password”,password\u默认值)
并将其保存在数据库中。这是关于注册的。@AhmedHamada然后你可以使用上面的代码来验证(登录)哦,没有看到你准确回答了这一点,以我的upvote作为补偿:)我很抱歉我是个笨蛋,因为我不擅长编码,我只知道一些小的基础知识,我正在使用预先制作的网站!那么,上面的代码有什么问题吗?我需要更改或缩短一些内容:您不能在没有密码的情况下使用password\u verify(),因为您发布了您使用md5进行散列的消息。@AhmedHamada so而不是
$pwHash=md5('password')
您可以
$pwHash=password\u散列(“password”,password\u默认值)
并将其保存在数据库中。这是在注册时。@AhmedHamada然后您可以使用上面的代码进行验证(登录)