I have a login and sign up form and use the encrypt library to encrypt the password.. I am using Xampp for my server and my system works correctly..
code to encrypt the password:
$this->encrypt->encode('my password');
add encrypt library
$autoload['libraries'] = array('encrypt');
and setting the secret key in config:
$config['encryption_key'] = 'nmsc encrypt secret key';
My code works well using xampp server in windows but when Im trying to upload my website to ubuntu server I've got an error says
The Encrypt library requires the Mcrypt extension
how to fix that problem? refering this guide https://www.codeigniter.com/user_guide/libraries/encryption.html but I dont know how to install that mcrypt. my website needs to run from ubuntu server. how to install or fix that problem?
You should install the PHP mcrypt module;
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
And normally you will be good ;)
I was getting this error because i had switched from XAMPP(php5) to XAMPP(php7), for this I replaced my old CI->system->libraries->encrypt.php with new file here:encrypt.php, and it worked.
In this new file we check if mcrypt_encrypt in __construct function support with
$this->_mcrypt_exists = ( ! function_exists('mcrypt_encrypt')) ? FALSE : TRUE;
and based on that we use different function between mcrypt_encode and _xor_encode like that.
Just to know, if you see this old file in __construct function you will see actual error checking
if (($this->_mcrypt_exists = function_exists('mcrypt_encrypt')) === FALSE)
{
show_error('The Encrypt library requires the Mcrypt extension.');
}
It worked for me.
Sounds like you need to update your php version.
http://php.net/manual/en/mcrypt.requirements.php
Open your: /etc/php5/apache2/php.ini
Example: sudo gedit /etc/php5/apache2/php.ini
At line 1728, put this code:
extension=mcrypt.so
Then restart your Apache.
Solution works for me is
Before :
$autoload['libraries'] = array('database','session','upload','form_validation','encrypt','pagination');
After :
$autoload['libraries'] = array('database','session','upload','form_validation','pagination');
i just removed encrypt library from autoload libraries.
Best solution is:
change
$this->load->library('encrypt');
to
$this->load->library('encryption');
with php 7 and above mcrypt need not to be loaded manually so both of the solution will work.
$this->load->library('encrypt');change to$this->load->library('encrypt');Just remove encrypt from autoload
$autoload['libraries'] = array('database','session','upload','form_validation','encrypt','pagination');
Change to
$autoload['libraries'] = array('database','session','upload','form_validation','encrypt','pagination');
Just Go to php version in cpanel
and change version to 5.x
来源:https://stackoverflow.com/questions/35798048/php-error-the-encrypt-library-requires-the-mcrypt-extension-in-codeigniter