PHP在md5()函数中显示错误

时间:2016-02-21 07:26:41

标签: php

我尝试将salt与md5()函数一起分配给password参数。但PHP在执行代码时会显示错误消息。

  

错误消息严格标准:只应通过引用传递变量   当我尝试执行以下代码时显示。我试图将引用赋给变量并将其传递给md5()函数。但是PHP仍然显示相同的错误消息。

    global $Database;
    if ($stmt = $Database -> prepare("SELECT * FROM users WHERE username = ? and password = ?")) {
        $salt = $this->salt;
        $stmt -> bind_param("ss", $user, md5($pass . $salt));
        $stmt -> execute();
        $stmt -> store_result();

        if ($stmt -> num_rows > 0) {
            $stmt -> close();
            return TRUE;
        } else {
            $stmt -> close();
            return FALSE;
        }
    } else {
        die("ERROR: Could not prepare MySQLI statement");
    }

1 个答案:

答案 0 :(得分:0)

bind_param的{​​{1}}需要引用变量。您无法直接使用params,您需要先将其分配给变量:

md5()

然后,使用它:

md5pass = md5($pass . $salt);

提示:请勿将$stmt -> bind_param("ss", $user, $md5pass); 用于散列密码。您可以将md5()与blowfish算法一起使用,因为它更安全。