【问题标题】:Pdo AuthenticationPdo 身份验证
【发布时间】:2013-12-19 09:23:41
【问题描述】:

我已经编写了我的 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();
?>

任何想法都很好,谢谢?

【问题讨论】:

  • 似乎一个离题的非真实问题可能只是无尽的代表点来源。每个参与者都可以获取一行随机构建的代码,修复它,并获得应得的奖励。利润!
  • 那你为什么不投票关闭它或自己回答,@YourCommonSense,而不是抨击那些花时间回答的人。
  • @MartinBean 因为 Stack Overflow 是一场赌博,每个人都只有在获得代表点数之后才会参与其中。意味着这个问题永远不会被关闭(因为关闭没有奖励)。
  • @YourCommonSense 以身作则。如果您认为这个问题不符合 Stack Overflow 的标准,请点击上方的“关闭”链接。
  • 你被重定向到welcome.php吗?

标签: php authentication pdo


【解决方案1】:

首先你这里有错误

password_verify($_POST['pass'])

password_verify() 需要 2 个参数,但您只传递了一个。它缺少应该比较的 hash

【讨论】:

  • 这不是答案,而是评论。请缓和您对代表积分的渴望。 如果您决定回答一个离题的问题,请使其成为完整的答案,而不仅仅是对一个小问题的评论。
  • @YourCommonSense,我认为这不是评论,因为这是使代码无法执行的首要因素(因为这是一个语法错误)因为他没有提供hash 与密码进行比较。此外,我找不到引用哈希的单个变量。
  • 再次。这并不能解决 OP 中的问题。这远非任何代码问题。如果您的回答没有回答问题,而只概述了一个小问题 - 它必须是评论。还不够清楚吗?
  • 谢谢你这确实帮助但没有解决问题,再次感谢你
猜你喜欢
  • 2012-04-13
  • 2015-02-02
  • 2018-02-24
  • 2015-04-29
  • 2010-10-05
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
相关资源
最近更新 更多