PHP GdLib Problem.. .
tafkat
- php
Servus, guten abend..
Ich hab zzt. ein kleines Problem das ich alleine nicht beheben kann.
Hab nen WAMP installiert und die Extension 'php_gd2.dll' aktiviert.
Zitat php_info(); :
;----------------------------
GD Support: enabled
GD Version: bundled (2.0.28 compatible)
FreeType Support: enabled
FreeType Linkage: with freetype
FreeType Version: 2.1.9
T1Lib Support: enabled
GIF Read Support: enabled
GIF Create Support: enabled
JPG Support: enabled
PNG Support: enabled
WBMP Support: enabled
XBM Support: enabled
;------------------------------
PHP Code:
;-----------------------------
$werte = file('file.txt');
$text= rand(0,count($werte)-1);
$text= wordwrap( $werte[$text], 30, "\n" );
echo $text;
$img = ImageCreateFromGIF('captcha.gif');
$color = ImageColorAllocate($img, 0, 0, 0);
$ttf = 'actionj';
$ttfsize = 8;
$angle = 0;
$text_x = 5;
$text_y = 30;
imagettftext($img, $ttfsize, $angle, $text_x, $text_y, $color, $ttf, $text);
imagegif($img);
imagedestroy($img);
;-------------------------------
Der Code scheint Okay (Keine Fehlermeldungen)
Jedoch wird mir auf der Seite selbst nur eine art base64 verschlüsselter Text angezeigt, kein Bild..
Die Dateien: captcha.gif und file.txt befinden sich im richtigen Ordner.
Woran könnte das ggf. liegen ?
Hi,
Jedoch wird mir auf der Seite selbst nur eine art base64 verschlüsselter Text angezeigt, kein Bild..
Du versendest ein HTML-Dokument, welches (anstatt HTML-Code) die Binärdaten der Grafik enthält. HTML ist Text, also stellt ein standardkonformer Browser das ganze als Text dar.
Die Dateien: captcha.gif und file.txt befinden sich im richtigen Ordner.
Wo irgendwelche Dateien liegen, ist HTTP egal. HTTP weiß nichts von Dateien. Es besteht aus Ressourcen. Ressourcen enthalten neben dem Body auch einen Header.
Woran könnte das ggf. liegen ?
Der Body ist richtig, der Header falsch.
Cheatah
Also im Header der Index.php habe ich folgendes stehen:
<meta http-equiv="Content-Type" content="image/gif" />
Hi,
Also im Header der Index.php habe ich folgendes stehen:
<meta http-equiv="Content-Type" content="image/gif" />
das ist kein HTTP-Header, sondern ein HTML-<head>. Kein mir bekanntes Grafikformat kann HTML-Code enthalten[1]; zudem hat der HTTP-Header noch immer vor HTTP-äquivalenten Informationen Vorrang, und im HTTP-Header behauptest Du noch immer, HTML-Code zu versenden.
Was sich dann ja auch bestätigt: <meta> ist ein HTML-Element.
Cheatah
[1] Außer in Kommentarfeldern, die per se keinen dieserartigen Nutzen haben können.
Okay.. Danke mal für den Tip..
Nun Steht in der index.php zusätzlich: header("Content-type: image/png");
Soweit, Sogut...
Leider kommt nun der Text: Grafik kann nicht angezeigt werden da sie fehler enthält. :S
Woran kann das jetzt wieder liegen.
Schwerer als ich dachte mit gdlib
Hi,
Nun Steht in der index.php zusätzlich: header("Content-type: image/png");
Und was noch ...?
Soweit, Sogut...
Leider kommt nun der Text: Grafik kann nicht angezeigt werden da sie fehler enthält. :S
Woran kann das jetzt wieder liegen.
Vermutlich daran, dass du immer noch versuchst, HTML-Dokument und Bild in *einer* Ressource auszugeben.
MfG ChrisB
Versteh einer wer will, ich jedenfalls leider nicht..
Also ich hab die register.php in der ich via createcaptcha(); aus der functions.php versuche eben dieses angegebene Bild auszugeben.
Hi,
Versteh einer wer will, ich jedenfalls leider nicht..
Du willst nicht? Ja, scheint mir langsam auch so ...
Also ich hab die register.php in der ich via createcaptcha(); aus der functions.php versuche eben dieses angegebene Bild auszugeben.
Gut, noch mal:
Wenn du das Bild *nicht* dynamisch erzeugen, sondern eine statisch auf der Platte des Servers vorhandene Bilddatei in ein HTML-Dokument einbauen wollen wuerdest, wie wuerdest du das dann machen? Doch sicherlich nicht, in dem du die *binaeren* Bilddaten ins HTML-Dokument einfuegst, *sondern* ...?
MfG ChrisB
...sondern die Grafik. *patsch* Danke für die Geduld !!!
Hi,
Der Code scheint Okay (Keine Fehlermeldungen)
Jedoch wird mir auf der Seite selbst nur eine art base64 verschlüsselter Text angezeigt, kein Bild..
Das sind die binaeren Bilddaten.
Die Dateien: captcha.gif und file.txt befinden sich im richtigen Ordner.
Woran könnte das ggf. liegen ?
Hast du die binaeren Bilddaten etwa innerhalb des HTML-Dokumentes ausgegeben?
Auch wenn das viele Anfaenger ohne gross nachzudenken so machen, ist es natuerlich kompletter Unfug - das machst du mit "normalen" Bildressourcen doch auch nicht so, sondern ...?
(Und mit einem passenden Content-Type-Header ausliefern solltest du eine Bildressource natuerlich auch.)
MfG ChrisB