与密码验证错误问题验证[复制]
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));
以上是关于与密码验证错误问题验证[复制]的主要内容,如果未能解决你的问题,请参考以下文章
与 Dojo 验证一起使用时,Chrome 41 密码保存会做出错误的选择