我有一个登录和注册表单,并使用加密库加密密码..我正在使用Xampp我的服务器,我的系统正常工作..
用于加密密码的代码:
$this->encrypt->encode('my password');
添加加密库
$autoload['libraries'] = array('encrypt');
并在config中设置密钥:
$config['encryption_key'] = 'nmsc encrypt secret key';
我的代码在Windows中使用xampp服务器效果很好,但是当我试图将我的网站上传到ubuntu服务器时我发现了一个错误说
Encrypt库需要Mcrypt扩展
如何解决这个问题?引用本指南qazxsw大便,但我不知道如何安装该mcrypt。我的网站需要从ubuntu服务器运行。如何安装或修复该问题?
我收到此错误是因为我已经从XAMPP(php5)切换到XAMPP(php7),为此我用新文件替换了我的旧CI-> system-> libraries-> encrypt.php:sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
,并且它有效。
在这个新文件中,我们检查__construct函数中的mcrypt_encrypt是否支持
encrypt.php
并且基于此我们在mcrypt_encode和_xor_encode之间使用不同的函数。
只是要知道,如果你在__construct函数中看到这个旧文件,你会看到实际的错误检查
$this->_mcrypt_exists = ( ! function_exists('mcrypt_encrypt')) ? FALSE : TRUE;
它对我有用。
听起来你需要更新你的PHP版本。
if (($this->_mcrypt_exists = function_exists('mcrypt_encrypt')) === FALSE)
{
show_error('The Encrypt library requires the Mcrypt extension.');
}
打开你的:http://php.net/manual/en/mcrypt.requirements.php
示例:/etc/php5/apache2/php.ini
在第1728行,输入以下代码:
sudo gedit /etc/php5/apache2/php.ini
然后重启你的Apache。
解决方案对我有用
之前:
extension=mcrypt.so
之后:
$autoload['libraries'] = array('database','session','upload','form_validation','encrypt','pagination');
我刚刚从自动加载库中删除了加密库。
只需转到cpanel中的php版本
并将版本更改为5.x.
最佳解决方案是:
更改
$autoload['libraries'] = array('database','session','upload','form_validation','pagination');
至
$this->load->library('encrypt');