69 Stimmen

Fataler Fehler: Aufruf einer undefinierten Funktion mcrypt_encrypt()

HINWEIS: Die Bibliotheken, von denen die MCrypt-Unterstützung abhängt, sind seit Jahren nicht mehr aktualisiert worden, und MCrypt sollte nicht länger als praktikable oder sichere Methode zur Verschlüsselung von Daten angesehen werden. Darüber hinaus wurde MCrypt in PHP 5 veraltet und in PHP 7 vollständig entfernt. Wenn Sie Code haben, in dem MCrypt verwendet wird, sollten Sie ihn überarbeiten und eine modernere Verschlüsselungsbibliothek verwenden.


Weiß jemand, warum diese Fehlermeldung: (Call to undefined function mcrypt_encrypt() ) angezeigt, wenn ich den folgenden Code ausführe?

Übersehe ich einige Schritte, vielleicht eine Einstellung in PHP, die ich vornehmen muss, bevor dieser Code funktionieren kann?

$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)));

0 Stimmen

Welche Version von PHP verwenden Sie?

0 Stimmen

Vielleicht haben Sie PHP 4.0.1, dies ist eine 4.0.2 Funktion. Läuft hier richtig.

5 Stimmen

Ich habe die Version 5.2.8 und erhalte ebenfalls den Fehler "undefinierte Funktion".

11voto

Pierre de LESPINAY Punkte 42190

Unter Ubuntu hatte ich das Problem und löste es mit

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

7voto

alphayax Punkte 2585

Unter ubuntu 14.10 :

Modul mcrypt installieren

sudo apt install php5-mcrypt

Aktivieren Sie das Modul mcrypt auf apache2

sudo a2enmod mcrypt

Modulkonfiguration neu laden

sudo service apache2 restart

6voto

Phil Lawlor Punkte 173

Unter Linux Mint 17.1 Rebecca - Aufruf der undefinierten Funktion mcrypt_create_iv...

Behoben durch Hinzufügen der folgenden Zeile in der php.ini

extension=mcrypt.so

Danach wird ein

service apache2 restart

es gelöst...

5voto

Ahmad Vaqas Khan Punkte 598

Ich hatte das gleiche Problem bei PHP 7 Version des fehlenden mcrypt.

Das hat bei mir funktioniert.

sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade
sudo service apache2 restart (if needed)

3voto

beiping_troop Punkte 175

Angenommen, Sie verwenden Debian-Linux (ich verwende Linux Mint 12, das Problem trat auf dem Ubuntu 12.04.1 LTS-Server auf, in den ich geshsht habe).

Ich schlage vor, @dkamins Rat zu befolgen und sicherzustellen, dass mcrypt auf Ihrer php5-Installation installiert und aktiv ist. Verwenden Sie "sudo apt-get install php5-mcrypt" zur Installation. Meine Notizen unten.

PHP-Version verwenden PHP Version 5.3.10-1ubuntu3.4 Wenn Sie, wie von @John Conde vorgeschlagen, phpinfo() öffnen, indem Sie eine Testdatei auf dem Webserver erstellen (z. B. die Statusseite testphp.php mit dem Inhalt "", auf die man mit dem Browser überall auf dem Server zugreifen kann)

Auf der Statusseite, die im Browser geöffnet wird, ist der Status "aktiviert" oder "deaktiviert" nicht vorhanden. Als ich dann die von @Anthony Forloney erwähnte php.ini-Datei öffnete, dachte ich, dass ich das Kommentarfeld ;extension=php_mcrypt.dll to extension=php_mcrypt.dll

Ich habe das hin und her geschaltet und den Apache neu gestartet (ich verwende Apache2, und man kann in meinem Setup neu starten mit sudo /etc/init.d/apache2 restart oder, wenn Sie sich in diesem Verzeichnis befinden, einfach sudo restart Ich glaube) mit Änderung und ohne Änderung, aber alles no go. Ich befolgte @dkamins Rat und installierte das Paket mit "sudo apt-get install php5-mcrypt" und startete dann Apache wie oben beschrieben neu. Dann war der Fehler weg und meine Anwendung funktionierte einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X