Ölümcül hata: tanımlanmamış işlev MCRYPT_ENCRYPT Çağrı ()

8 Cevap php

Ben aşağıdaki aşağıdaki kodu çalıştırdığınızda (Call to undefined function mcrypt_encrypt() ) görüntüler: Herkes neden bu hata mesajını biliyor mu?

Belki de ben bu kodu daha önce yapmak zorunda PHP herhangi bir ayar çalışabilir bazı adımlar eksik?

$key = 'password to (en/de)crypt';
$string = 'string to be encrypted';

$test = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key),
            $string, MCRYPT_MODE_CBC, md5(md5($key)));

8 Cevap

Ne php.ini açmak ve php_mycrypt.dll kaldırarak uzantısı ;, yani değişen izin, PHP sürümü 5.2.8 ile birlikte benim için çalıştı:

;extension=php_mcrypt.dll ile extension=php_mcrypt.dll

Sen mcrypt kütüphanesi yüklü değil.

http://www.php.net/manual/en/mcrypt.setup.php daha fazla bilgi için bkz.

Paylaşılan barındırma iseniz, bunu yüklemek için sağlayıcı sorabilirsiniz.

Ubuntu altında ben bir sorun vardı ve bunu çözüldü

$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reload

Bir şey daha: Eğer Apache gibi bir web sunucusu üzerinden PHP hizmet ise, web sunucusu yeniden başlatmayı deneyin. Bu yeni yapılandırma aktive, mevcut olabilecek herhangi bir PHP modüllerini "reset" olacak.

Eğer Debian Linux kullanıyorsanız varsayarak (Linux Mint 12 kullanıyorum, sorun ben içine ssh'ed Ubuntu 12.04.1 LTS sunucu üzerinde idi.)

Ben dkamins tavsiye @ alarak ve install php5 yüklü Mcrypt ve aktif emin yapmanızı öneririz. Yüklemek için "sudo apt-get install php5-mcrypt" kullanın. Aşağıda benim notlar.

Web sunucu üzerinde test dosyası oluşturarak yapmanız @ John Conde, önerdiği gibi (örneğin, sadece içeriği "" her yerde erişilebilir ile durumu sayfası testphp.php oluşturmak açık phpinfo () ise, PHP sürümü PHP Version 5.3.10-1ubuntu3.4 Kullanma tarayıcı üzerinden sunucuda)

Tarayıcıda açıldığında durum sayfasında etkin veya devre dışı durumundan hiçbir varlığı bulundu. Sonra yorumsuz düşünüyordum @ Anthony Forloney tarafından belirtilen php.ini dosyasını, açıldığında ;extension=php_mcrypt.dll to extension=php_mcrypt.dll

I toggled that back and forth and restarted Apache (I'm running Apache2 and you can restart in my setup with sudo /etc/init.d/apache2 restart or when you are in that directory just sudo restart I believe) with change and without change but all no go. I took @dkamins advice and went to install the package with "sudo apt-get install php5-mcrypt" and then restarted apache as above. Then my error was gone and my application worked fine.

Pencere için

;extension=php_mcrypt.dll to extension=php_mcrypt.dll 
 then restart your apache server

Red Hat için

sudo yum install php55-mcrypt //if php5.5
sudo yum install php-mcrypt //if less than 5.4
sudo service httpd restart //if apache 2.4
sudo /etc/init.d/httpd restart //if apache 2.2 or less

Ubuntu için

sudo apt-get install php5-mcrypt
sudo service apache2 restart //if server not reloaded automatically 

Linux tabanlı için (Fedora)

yum -y install php-mcrypt

'Extension = mcrypt.so' PHP.ini için: ekleyerek modülünü etkinleştirin. (/ Etc / php.ini)

systemctl restart httpd.service

Bitti!