我已阅读此主题的其他帖子,但尚未找到解决此问题的方法.这是我的代码,简化为裸功能:
<?php
$password = "YS7Wde5s";
$hashA = password_hash($password, PASSWORD_BCRYPT);
echo $hashA . "<br>";
// Copied from echo above
$hashB = "$2y$10$nltCAZhbMD2OILgq2ftWNOd6kJL8oidQ12CLEM5Gi1kIj5GxKtNhm";
if (password_verify($password, $hashA)) {
echo "yes";
} else {
echo "no";
}
?>
Run Code Online (Sandbox Code Playgroud)
上面的代码适用$hashA于验证密码.但:
$hashA每当我重新加载页面时,echo 返回一个不同的哈希.$hashB,并使用它代替$hashA,我永远不会得到真正的password_verify呼叫.我错过了什么?是否存在我不知道的隐式类型转换?或者我应该如何工作?
我有以下代码行
<?php
$userobject = $_SESSION[CATS];
print_r($userobject);
?>
Run Code Online (Sandbox Code Playgroud)
以这种方式给我一个输出.
CATSSession Object ( [_siteID:CATSSession:private] => 1 [_userID:CATSSession:private] => 1262 [_siteCompanyID:CATSSession:private] => -1 [_userLoginID:CATSSession:private] => 184 [_accessLevel:CATSSession:private] => 200 [_realAccessLevel:CATSSession:private] => 200 [_isLoggedIn:CATSSession:private] => 1 [_isDemo:CATSSession:private] => [_isASP:CATSSession:private] => [_isFree:CATSSession:private] => [_isHrMode:CATSSession:private] => [_accountActive:CATSSession:private] => 1 [_accountDeleted:CATSSession:private] => [_siteName:CATSSession:private] => toppersedge.com [_unixName:CATSSession:private] => [_username:CATSSession:private] => savita [_password:CATSSession:private] => 6a8ce6560ef2e1bb577447dacc710fa7 [_firstName:CATSSession:private] => savita [_lastName:CATSSession:private] => savita [_email:CATSSession:private] => savita@toppersedge.com [_ip:CATSSession:private] => ::1 [_userAgent:CATSSession:private] => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36 …Run Code Online (Sandbox Code Playgroud)