与密码验证错误问题验证[复制]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与密码验证错误问题验证[复制]相关的知识,希望对你有一定的参考价值。

这个问题已经在这里有一个答案:

我试图实现passwordverify在php中的PDO语法。我已经注册了,当我的密码散列。当我点击登录这个错误弹出

在C,期待 '' 或 ')';语法错误,意想不到的 '': XAMPP htdocs中尝试在线25上 authenticate.php解析错误

这是我的authenticate.php

<?php 
    require 'database-config.php';

    session_start();

    $username = "";
    $password = "";

    if(isset($_POST['username'])){
        $username = $_POST['username'];
    }
    if (isset($_POST['password'])) {
        $password = $_POST['password'];

    }

    echo $username ." : ".$password;

    $q = 'SELECT * FROM isalonusers WHERE username=:username AND password=:password';

    $query = $dbh->prepare($q);



    $query->execute(array(':username' => $username, ':password' => password_verify($_POST['password'], $password['password']));


    if($query->rowCount() == 0){
        header('Location: index.php?err=1');
    }else{

        $row = $query->fetch(PDO::FETCH_ASSOC);

        session_regenerate_id();
        $_SESSION['sess_user_id'] = $row['id'];
        $_SESSION['sess_username'] = $row['username'];
        $_SESSION['sess_name'] = $row['name'];
        $_SESSION['sess_phone_number'] = $row['phone_number'];
        $_SESSION['sess_gender'] = $row['gender'];
        $_SESSION['sess_address'] = $row['address'];
        $_SESSION['sess_occupation'] = $row['occupation'];
        $_SESSION['sess_birth_date'] = $row['birth_date'];
        $_SESSION['sess_userrole'] = $row['user_type'];

        echo $_SESSION['sess_userrole'];
        session_write_close();

        if( $_SESSION['sess_userrole'] == "admin"){
            header('Location: adminhome.php');
        }else{
            header('Location: index.php?err=1');
        }


    }


?>  

什么是我用于验证我的密码语法错误?

答案
$query->execute(array(':username' => $username, ':password' => password_verify($_POST['password'], $password['password'])));

在第25行缺少)

更新

http://php.net/manual/en/function.password-verify.php

根据文档password_verify会给布尔值。所有你需要做的散列用户输入密码,然后与数据库的密码进行比较。如下图所示。

$query->execute(array(':username' => $username, ':password' => $user_input_hashed_password));

以上是关于与密码验证错误问题验证[复制]的主要内容,如果未能解决你的问题,请参考以下文章

JSP 设计教师与学生不同登陆界面(带验证码)

sql身份验证密码怎么复制

超出未经身份验证的使用的每日限制。继续使用需要注册错误

与 Dojo 验证一起使用时,Chrome 41 密码保存会做出错误的选择

简易登录表单的制作,包括用户名密码随机验证码(代码完整,复制即用)

如何将文本发送到基本身份验证中的用户名和密码字段? [复制]