注意:未定义属性:用户/致命错误:调用未定义函数mcrypt_create_iv()

时间:2013-09-11 07:56:01

标签: php

我收到以下2个错误

注意:未定义的属性:User :: $ username 致命错误:调用未定义的函数mcrypt_create_iv()

我无法弄清楚它是什么......我已经在其他2台服务器上安装了这个软件而没有任何问题。

这是脚本应该是

的一部分

function set_user_cookie(){

global $USER_COOKIE,$COOKIE_PATH,$COOKIE_DOMAIN,$COOKIE_KEY;

$cookie = "email=".urlencode($this->email)."&uid=$this->id&seclev=$this->seclev&username=$this->username";

if (isset($COOKIE_KEY)) {

  $iv = mcrypt_create_iv(mcrypt_get_iv_size (MCRYPT_BLOWFISH, MCRYPT_MODE_ECB), MCRYPT_RAND);

  $cookie = base64_encode(mcrypt_encrypt (MCRYPT_BLOWFISH, $COOKIE_KEY, $cookie, MCRYPT_MODE_ECB, $iv));

}

$expire = (time() + (3600 * 24 * 365 * 5));

setcookie($USER_COOKIE,$cookie,$expire,$COOKIE_PATH,$COOKIE_DOMAIN,0);

}

我希望有人能在这里帮助我,我对PHP很新:(

2 个答案:

答案 0 :(得分:19)

首先安装php mcrypt模块。

sudo apt-get install php5-mcrypt   

重启Apache。

service apache2 restart

如果安装mcrypt模块后问题仍然存在,可能是因为未启用mcrypt模块。试试这个。

sudo php5enmod mcrypt

再次重启Apache。

service apache2 restart

答案 1 :(得分:5)

你可能错过了mcrypt PHP扩展。

如果你的服务器在Debian / Ubuntu上运行,请像这样安装......

sudo apt-get install php5-mcrypt

然后重新启动您的网络服务器:

sudo /etc/init.d/apache2 restart

在其他Linux发行版上,使用相应的软件包安装程序工具。 如果事情仍然不起作用,您可能必须在php.ini中启用mcrypt扩展名。