PHP不推荐使用:具有相同名称密码哈希的方法

时间:2017-08-07 07:41:42

标签: php

错误密码哈希行1类密码哈希

PHP已弃用:与其类同名的方法将不会是PHP未来版本中的构造函数; PasswordHash有一个不推荐使用的构造函数 如何修复错误? 我的数据库7.1

class PasswordHash {
var $itoa64;
var $iteration_count_log2;
var $portable_hashes;
var $random_state;
var $hash_method; // do not modify directly, use set_hash_method instead.

function PasswordHash($iteration_count_log2 = 9, $portable_hashes = false, $hash_method = null, $full_compat = true)
{
    $this->portable_hashes = $portable_hashes;
    $this->full_compat = $full_compat;

    if ($this->set_hash_method($hash_method)===false){
        return false;
    }
    $this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
        $iteration_count_log2 = 8;
    $this->iteration_count_log2 = $iteration_count_log2;
    $this->random_state = microtime();
    if (function_exists('getmypid'))
        $this->random_state .= getmypid();

    return $this;
}

2 个答案:

答案 0 :(得分:3)

我不知道您使用的是哪个版本的PHP,但WARNING消息告诉您应该停止使用具有相同类名的构造函数,而是开始使用__construct

class PasswordHash {
var $itoa64;
var $iteration_count_log2;
var $portable_hashes;
var $random_state;
var $hash_method; // do not modify directly, use set_hash_method instead.

function __construct($iteration_count_log2 = 9, $portable_hashes = false, 
    $hash_method = null, $full_compat = true) {
...

答案 1 :(得分:1)

在PHP 4中,构造函数与类具有相同的名称。从PHP7开始,它不是一个选项。 您应该使用名称PasswordHash重命名方法。 并且构造函数也不返回值。