Captcha-Problem

Headymaster

Erfahrenes Mitglied
Hallo,

bin grad dabei, mir eine Captcha-Klasse zu schreiben, nur habe ich noch ein paar Probleme mit dem Erstellen des Captcha Bildes.

Und zwar bekomme ich immer den Fehler:
Code:
Die Grafik "http://localhost/workspace/NilsonCMS/contact/captcha" kann nicht angezeigt werden, weil sie Fehler enthält.

Erstellen tu ich die Datei so:
PHP:
// Das Cachen der Grafik verhindern
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        header('Last-Modified:'.gmdate('D, d M Y H:i:s').' GMT');
        header('Cache-Control: no-store, no-cache, must-revalidate');
        header('Cache-Control: post-check=0, pre-check=0', false);
        header('Pragma: no-cache');
		
		// Browser mitteilen, dass ein Bild ausgegeben wird
		header('Content-type: image/png');
		
		// fonts
		$fontpath = APP_ROOT.'images'.DIRECTORY_SEPARATOR.'fonts'.DIRECTORY_SEPARATOR;
		$Schriftarten = array($fontpath.'zacharyf', $fontpath.'mtcorsvaf', $fontpath.'gilliganf');
		
		$pic = imagecreatefrompng($fontpath.'hintergrund.png');
        $color1 = imagecolorallocate($pic, 0, 125, 0 );
        $color2 = imagecolorallocate($pic, 130, 70, 90 );
        $color3 = imagecolorallocate($pic, 180, 90, 190 );
        imagettftext($pic, 12, 15, 3, 24, $color1, $Schriftarten[0], substr($this->_code, 0, 2));
        imagettftext($pic, 16, 0, 26, 15, $color2, $Schriftarten[1], substr($this->_code, 2, 2));
        imagettftext($pic, 14, -20, 53, 18, $color3, $Schriftarten[2], substr($this->_code, 4, 2));
        
        // Bild ausgeben
        imagepng($pic);
        imagedestroy($pic);

Ich weiß einbfach nicht wo der Fehler liegen könnte, habe auch noch nie was mit der gd2 lib gemacht :(

Würde mich über Hilfe freun.

MFG Nilson
 
Hmm, also dann bekomme ich nur ein Zeichenkauderwelsch beginnend mit
Code:
‰PNG  ??? IHDR???P??????)$>

MFG Nilson
 
Versuchs mal zu Testzwecken mit einem anderen Bildtyp, also z.B. Mimetype image/jpeg und entsprechend imagejpg($pic).
 
Jop,

also Error_Reporting ist gesetzt:
PHP:
error_reporting(E_ALL|E_STRICT);

Wenn ich imagepng($pic) auskommentiere und die Header wieder einkommentiere, dann bekomme ich immer noch den gleichen Fehler, wenn ich aber die Header weglasse, bekomme ich nen weißes Browserfenster....

MFG Nilson
 
Ich weiß es jetzt nicht 100%tig, aber wenn ich mit Captchas arbeite, dann häng ich zumindest noch die Datei Endung der Fontfiles an, und da gabs noch nie Probleme:
PHP:
$Schriftarten = array($fontpath.'zacharyff', $fontpath.'mtcorsvaff', $fontpath.'gilliganff');
 
Hehe joa die sollten da auch eigentlich sein, bei mir in der PHP-Datei sind sie auch vorhanden, sind wohl beim Copy & paste nicht übernommen oder rausgefiltert worden oder so...

Aber die sind vorhanden, daran liegt es nicht.

MFG Nilson
 
Wird davor schon etwas ausgegeben (sei es auch nur ein Leer- oder Zeilenumbruchzeichen)?
 
Jasuper das wars.
Ich schussel habe meine Navigation gerendert bevor ich die Logik in meinem Controller ausführe.
Somit kann ich dann in meinem Controller auch das Rendern ausschalten und es wird trotzdem die navigation gerendert^^

Manchmal sieht man den Wald vor lauter Bäumen nicht xD

Danke nochmal

MFG Nilson
 

Neue Beiträge

Zurück