2
我遇到问题。我正在使用PHP散列我的密码,但是当我验证它时,它给出了以下消息。使用PHP哈希处理后无法验证密码
注意:未定义的变量:liXZkG452在/opt/lampp/htdocs/test/verify.php第2行
失败
我解释下面我的代码。
hash.php
<?php
$password="[email protected]";
$hash = password_hash($password, PASSWORD_BCRYPT);
echo $hash;
?>
以上echo
是给这个$2y$10$liXZkG452/DQjB7TsIHEzuJ/ovi0L3.xwN1uYeqt.kFYma33Uu9Wq
值并再次我在下面的文件比较它。
verify.php
<?php
$hash="$2y$10$liXZkG452/DQjB7TsIHEzuJ/ovi0L3.xwN1uYeqt.kFYma33Uu9Wq";
$password="[email protected]";
if (password_verify($password, $hash)) {
echo 'login';
}else{
echo 'Failed';
}
?>
上述功能是给我的问题。请帮我解决这个问题。
您应该使用singlequotes''',而不是双引号。你在双引号中有'$'变量标识符,所以PHP认为它实际上是一个变量。使用单引号可以规避这一点。 – Qirel
@Qirel:完美,谢谢。我可以知道什么错误? – subhra
就像我所说的,'$'是变量标识符。所以PHP认为'$'之后的任何东西都是变量名称。在双引号中,PHP使用变量,但不使用单引号。 – Qirel