致命错误:调用未定义的函数Frisbee \ Helpers \ password_hash()

时间:2015-07-17 20:03:48

标签: php twig slim

所以我一直在关注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版本。

2 个答案:

答案 0 :(得分:1)

password_hashpassword_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();