3 Stimmen

PHP - ImageCreate() Fehler

Ich versuche, einen Captcha-Code zu erstellen, und ich habe einige Tutorials online gelesen. Also, ich habe diese Funktion kopieren/einfügen:

create_image(); 
exit(); 

function create_image() { 
    //Let's generate a totally random string using md5 
    $md5_hash = md5(rand(0,999)); 
    //We don't need a 32 character long string so we trim it down to 5 
    $security_code = substr($md5_hash, 15, 5); 

    //Set the session to store the security code
    $_SESSION["security_code"] = $security_code;

    //Set the image width and height 
    $width = 100; 
    $height = 20;  

    //Create the image resource 
    $image = ImageCreate($width, $height);  

    //We are making three colors, white, black and gray 
    $white = ImageColorAllocate($image, 255, 255, 255); 
    $black = ImageColorAllocate($image, 0, 0, 0); 
    $grey = ImageColorAllocate($image, 204, 204, 204); 

    //Make the background black 
    ImageFill($image, 0, 0, $black); 

    //Add randomly generated string in white to the image
    ImageString($image, 3, 30, 3, $security_code, $white); 

    //Throw in some lines to make it a little bit harder for any bots to break 
    ImageRectangle($image,0,0,$width-1,$height-1,$grey); 
    imageline($image, 0, $height/2, $width, $height/2, $grey); 
    imageline($image, $width/2, 0, $width/2, $height, $grey); 

    //Tell the browser what kind of file is come in 
    header("Content-Type: image/jpeg"); 

    //Output the newly created image in jpeg format 
    ImageJpeg($image); 

    //Free up resources
    ImageDestroy($image); 
}

Aber wenn ich versuche, es aufzurufen, erhalte ich diese Fehlermeldung:

Fataler Fehler: Aufruf einer undefinierten Funktion ImageCreate() in C:\Program Dateien \Apache Software-Stiftung \Apache2.2\htdocs\gtw\registration\createCaptcha.php in Zeile 19

Wo liegt das Problem? Eine PHP-Lib?

4voto

Andrew Moore Punkte 90339

En php_gd2 Erweiterung nicht aktiviert ist.

Es ist in der Windows-PHP-Distribution enthalten, aber Sie müssen es in php.ini . Dazu öffnen Sie einfach php.ini und dekommentieren (entfernen Sie die führende ; ) die folgende Zeile:

extension=php_gd2.dll

Speichern Sie, starten Sie den Apache neu, und alles sollte in Ordnung sein.

1voto

Tramov Punkte 1166

Um ImageCreate verwenden zu können, müssen Sie die GD Library als Teil Ihrer PHP-Installation haben.

Prüfen Sie mit der Funktion phpinfo(), ob sie installiert ist. Wenn nicht, müssen Sie dies hinzufügen.

0voto

Abuhafs Punkte 11

Sie müssen noch die php_gd2 Erweiterung aktivieren

Es ist in der Windows-PHP-Distribution enthalten, aber Sie müssen es in der php.ini aktivieren. Öffnen Sie dazu einfach die Datei php.ini und kommentieren Sie die folgende Zeile aus (entfernen Sie das führende ;):

erweiterung=php_gd2.dll Speichern Sie, starten Sie Apache neu, und alles sollte gut sein.

Um die Php.ini zu finden, gehen Sie in den Ordner xampp

php-Ordner öffnen php.ini-development öffnen Zeile 889, abhängig von der Version Ihres php Sie ist in der Windows-PHP-Distribution enthalten, aber Sie müssen sie in der php.ini aktivieren. Öffnen Sie dazu einfach die php.ini und kommentieren Sie die folgende Zeile aus (entfernen Sie das führende ;):

erweiterung=php_gd2.dll Speichern Sie, starten Sie Apache neu, und alles sollte gut sein.

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