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