【问题标题】:Call to undefined function hash() in /var/www/site/ problem在 /var/www/site/ 问题中调用未定义的函数 hash()
【发布时间】:2011-04-08 07:38:46
【问题描述】:

我在我的代码中调用了哈希函数,例如(php 版本 5.2.14)

$username =hash("sha256",trim($_POST['username']));
$password =hash("sha256",trim($_POST['password']));

但我得到了类似的错误 调用 /var/www/site/ 中未定义的函数 hash() 怎么办?

【问题讨论】:

  • 你有什么版本的 PHP?如果您查看文档jp.php.net/manual/zh/function.hash.php,您会注意到您需要 PHP 5 >= 5.1.2 或 pecl 模块.....
  • 你的 phpinfo() 中是否启用了哈希;
  • 您好。你用的是哪个php版本?确保在该版本中定义了哈希...

标签: php


【解决方案1】:

表示找不到函数hash()。检查manual 我看到了这个:

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

你运行什么 php 版本?试试:

<? phpinfo() ?>

检查。如果低于 5.1.2,则您没有可用的 hash() 函数

【讨论】:

    【解决方案2】:

    'hash()' 是在 PHP 5.1.2 中引入的,因此您可能使用的是旧版本。

    【讨论】:

      【解决方案3】:

      检查您的 PHP 版本,因为哈希函数仅适用于 PHP 5 >= 5.1.2 且 PECL 哈希 >= 1.1 的版本

      【讨论】:

        【解决方案4】:

        如果您有旧版本,您仍然可以恢复为 sha1 或 sha256 函数,如下所示:

        $username = sha1(trim($_POST['username']));
        $password = sha1(trim($_POST['password']));
        

        $username = sha256(trim($_POST['username']));
        $password = sha256(trim($_POST['password']));
        

        但是这里有一个很好的论点:SHA1 vs md5 vs SHA256: which to use for a PHP login?

        【讨论】:

          【解决方案5】:

          如果您的 PHP 版本 > 5.1.2,则通过取消注释正在使用的 php.ini 配置文件中的行并重新启动 Web 服务器来启用哈希扩展

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-12-28
            • 1970-01-01
            • 2018-10-25
            • 2016-10-22
            • 2018-07-21
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多