在/ var / www / site / problem中调用未定义的函数hash()

时间:2011-04-08 07:38:46

标签: php

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

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

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

5 个答案:

答案 0 :(得分:4)

这意味着找不到函数hash()。检查manual我看到了这个:

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

你运行的是什么php版本?尝试:

<? phpinfo() ?>

要检查。如果低于5.1.2,则表示您没有hash()功能

答案 1 :(得分:2)

'hash()'是在PHP 5.1.2中引入的,所以你可能有一个旧版本。

答案 2 :(得分:2)

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

答案 3 :(得分:0)

如果你有旧版本,你仍然可以恢复到sha1或sha256功能,如下所示:

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

OR

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

然而,这里有两个好的争论:SHA1 vs md5 vs SHA256: which to use for a PHP login?

答案 4 :(得分:0)

如果您的PHP版本&gt; 5.1.2,然后通过在正在使用的php.ini配置文件中取消注释其行并重新启动Web服务器来启用散列扩展