password_hash无法在PHP 5.5.12上运行

时间:2014-05-20 06:51:08

标签: php

我使用的是PHP 5.5.12,但我仍然可以

  

致命错误:调用未定义的函数PASSWORD_DEFAULT()

这是为什么?对于PHP 5.5,不是PASSWORD_DEFAULT吗?

public function addUser($un, $pass)
{
        $password = password_hash($pass, PASSWORD_DEFAULT());

        $sql = "insert into users (`username`, `password`) values ('$un', '$password')";

        $result = mysqli_query($this->dbh,$sql) or die(json_encode(array('error' => 0,'errorMsg' => "MySQL query failed.")));

        if(!$result) 
        {

        } 
        else 
        {
            echo json_encode(array(
                'error' => 1,
                'errorMsg' => "Registered."
            ));
        }

}

2 个答案:

答案 0 :(得分:3)

您收到错误是因为PASSWORD_DEFAULT常量,而不是函数

另请参阅http://www.php.net/manual/en/password.constants.phphttp://www.php.net/manual/en/function.password-hash.php

在您的代码中替换

$password = password_hash($pass, PASSWORD_DEFAULT());

$password = password_hash($pass, PASSWORD_DEFAULT);

答案 1 :(得分:2)

变化

$password = password_hash($pass, PASSWORD_DEFAULT());

$password = password_hash($pass, PASSWORD_DEFAULT);

这是一个常数而不是一个函数

了解更多信息: - http://docs.php.net/manual/en/function.password-hash.php