所以我一直在关注phpacademy Authentication System教程,并且我已经成功完成了系列中的视频15,但在最新的视频中我将网站上传到了没有本地化的网络服务器。
然而,在这样做时,我的散列函数不再有效,我收到上述错误。
<?php
namespace Frisbee\Helpers;
class Hash {
protected $config;
public function __construct($config){
$this->config = $config;
}
public function password($password){
return password_hash($password, $this->config->get('app.hash.algo'),
['cost' => $this->config->get('app.hash.cost')]
);
}
public function passwordCheck($password, $hash){
return password_verify($password, $hash);
}
}
在线研究我发现它可能与PHP版本有关,但我无法在我的CPanel上看到我使用的PHP版本。
答案 0 :(得分:1)
password_hash和password_verify在PHP 5.5中添加,这可能是你所缺少的。您可以使用ircmaxells password_compat库来解决这个问题,该库定义了相同的功能,但适用于旧版本的PHP。
答案 1 :(得分:0)
在所有版本的PHP上都没有安装password()和password_verify()函数。因此,您的服务器很可能没有运行最新版本的PHP。您可以通过phpinfo()或phpversion()检查服务器上的PHP版本。
“在线研究我发现它可能与PHP版本有关但我在CPanel上看不到我正在使用的PHP版本。”
只需创建一个新的php文件并回显出phpversion()
echo phpversion();