Php Pdo认证

Php Pdo认证,php,authentication,pdo,Php,Authentication,Pdo,我写了我的PDO认证,但它还不完整。我到目前为止已经测试过了。我已经调试过了,但在这里没有找到问题。 此代码应返回无效数据,除非在这种情况下它不会返回到空白页 <?php error_reporting(E_ALL); require('.class/class_pdo.php'); $query = $db->prepare('SELECT player_login_name, player_login_pass FROM members WHERE player_log

我写了我的PDO认证,但它还不完整。我到目前为止已经测试过了。我已经调试过了,但在这里没有找到问题。
此代码应返回无效数据,除非在这种情况下它不会返回到空白页

<?php
error_reporting(E_ALL);
require('.class/class_pdo.php');

$query = $db->prepare('SELECT player_login_name, player_login_pass FROM members
    WHERE player_login_name = :name AND player_login_pass = :pass');
$db->connect;
$query->bindParam(':name', $name, PDO::PARAM_STR);
$query->bindParam(':pass', $pass, PDO::PARAM_STR);

$name = (isset($_POST['name']) && !empty($_POST['name'])) ? htmlspecialchars($_POST['name']) : '';
$pass = (isset($_POST['pass']) && !empty($_POST['pass'])) ? password_verify($_POST['pass']) : '';

if($query->fetchColumn() == 0) {
    echo "Invalid data";
} else {
    header("location:'welcome.php'");
}
$query->execute();
?>

首先,这里有一个错误

password_verify($_POST['pass'])

需要两个参数,但只传递一个。它缺少了应该与之比较的散列。

这不是答案,而是注释。请缓和您的重复积分欲望。如果你决定回答一个离题的问题,就让它完整地回答,而不仅仅是对一个小问题的评论。@YourCommonSense,我不认为这是一个评论,因为这是使代码无法执行的首要问题(因为这是一个语法错误)因为他没有提供要与密码进行比较的
散列
。此外,我找不到一个引用哈希的变量。这并不能解决OP中的问题。OP中的问题与任何代码问题都相去甚远。如果你的回答没有回答问题,而只是概括了一个小问题,那就必须是评论。这还不够清楚吗?谢谢你这确实有帮助,但没有解决问题,再次谢谢你似乎一个非主题的非真实问题就可以成为无止境的代表点来源。每个参与者都可以获取这段随机生成的代码中的一行,然后修复它,并获得应得的奖励。利润!“那么,你为什么不投票关闭它或自己回答它呢,@yourcomense,而不是抨击那些花时间回答的人。@MartinBean因为堆栈溢出是一场赌博,每个人都只有在获得代表分数后才进行赌博。这意味着这个问题永远不会结束(因为结束没有奖励)。@YourCommonSense会以身作则。如果您认为这个问题不符合堆栈溢出的标准,请单击上面的“关闭”链接。是否重定向到
welcome.php