Captchaschrift wird nicht dargestellt...
Topo
- php
Moin Leute,
habe ein Problem (bin PHP Laie) mit einem Kontaktformular. Es geht um www.messe-mediterraneo.de
Im Kontaktformular wird die Schrift des Captcha nicht dargestellt. Wieso? Habe das Formular zur Probe bei http://www.messe-mediterraneo.de/test/kontaktformular.html abgelegt. Es wird nur das Captchahintergrundbild dargestellt... phptest.php liegt auch auf dem Server. Liegt es an der PHP Version des Servers oder sitzt das Problem vor dem Rechner?
Danke schon mal!
Ciao, Topo.
Im Kontaktformular wird die Schrift des Captcha nicht dargestellt. Wieso?
http://forum.de.selfhtml.org/hilfe/charta.htm@title=Keine Ahnung du verschweigst schließlich sämtliche relevanten Informationen.
Was willst Du wissen? Leider funktioniert Dein Link nicht...
Hi,
Was willst Du wissen?
Relevante Informationen.
Leider funktioniert Dein Link nicht...
Das stimmt ywar in diesem Fall, er lautet korrekt Tipps für Fragende. Die gelesen zu haben, hast du allerdings schon mit dem Posten hier bestätigt.
MfG ChrisB
Hier ist die captcha.php Datei.
Hoffe das hilft weiter...
<?php
session_start();
unset($_SESSION['captcha_spam']);
function randomString($len) {
function make_seed(){
list($usec , $sec) = explode (' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
//Der String $possible enthält alle Zeichen, die verwendet werden sollen
$possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
$str="";
while(strlen($str)<$len) {
$str.=substr($possible,(rand()%(strlen($possible))),1);
}
return($str);
}
$text = randomString(5); //Die Zahl bestimmt die Anzahl stellen
$_SESSION['captcha_spam'] = $text;
header('Content-type: image/png');
$img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
$color = ImageColorAllocate($img, 0, 0, 0); //Farbe
$ttf = $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"; //Schriftart
$ttfsize = 25; //Schriftgrösse
$angle = rand(0,5);
$t_x = rand(5,30);
$t_y = 35;
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
?>
Hi,
Hier ist die captcha.php Datei.
Hoffe das hilft weiter...
Kommentiere in dieser den Aufruf von header() aus,
sorge dafür, dass das error_reporting auf E_ALL und display_errors auf on steht,
rufe dann das Script direkt über die Adresszeile des Browsers auf.
Wenn dann keine Fehlermeldungen kommen sollten - dann beginne mit Kontrollausgaben der verwendeten Werte.
MfG ChrisB
So, muss noch dazu sagen, dass ich es auf einen Server von einem anderen Hoster hochgeladen hatte. Dort funktionierte das Captcha!?
Denke also, dass es eher am Server liegt.
Hi,
So, muss noch dazu sagen, dass ich es auf einen Server von einem anderen Hoster hochgeladen hatte. Dort funktionierte das Captcha!?
Denke also, dass es eher am Server liegt.
Schön. Dann finde heraus, warum es auf dem aktuellen Server nicht funktioniert.
Wie du dabei vorgehen kannst, schrieb ich bereits.
MfG ChrisB
display_errors steht auf On wie Du siehst.
Bei error_reporting zeigt er mir aber einen Wert an: 2037 2037
Wenn ich dies ändern kann, da sag mir bitte wie und wo?
Danke schon mal für die Hilfe!
Hi,
Bei error_reporting zeigt er mir aber einen Wert an: 2037 2037
Wenn ich dies ändern kann, da sag mir bitte wie und wo?
Wenn du über etwas nicht Bescheid weisst, informierst du dich dann bitte?
http://www.php.net/manual/en/book.errorfunc.php
MfG ChrisB
Ich mach mal an der Stelle hier weiter.
Also ich habe doch das Script über den Browser direkt eingegeben:
http://www.messe-mediterraneo.de/test/captcha/captcha.php
Habe ich es falsch verstanden?
Bin ratlos.
Sorry noch mal für das Doppelposting! Das gerstern besprochene Vorgehen hat leider nicht zur Lösung des Problems beigetragen.
Rotlos und beschämt!
Topo
Mahlzeit Topo,
Sorry noch mal für das Doppelposting! Das gerstern besprochene Vorgehen hat leider nicht zur Lösung des Problems beigetragen.
Das mag sein - Du nennst aber immer noch nicht Ross und Reiter, d.h. die genaue Fehlermeldung, die auftritt, wenn Du *ALLE* Dir gegebenen Tipps und Hinweise befolgst.
ChrisB hatte das ja für Dich getan ... was sagst Du dazu? Existiert die Font-Datei überhaupt auf dem Server?
MfG,
EKKi
Hi EKKi,
ja, die Fontdatei ist auf dem Server!
Nach welcher Funktion soll ich denn suchen? ChrisB meinte ja, ich solle nach der genannten Funktion in den Manuels suchen.
Was mich aber wundert ist, das das Captcha (die Schrift) auf einem anderen Server funktioniert.
Danke,
Topo.
Moin
Bei error_reporting zeigt er mir aber einen Wert an: 2037 2037
Wenn ich dies ändern kann, da sag mir bitte wie und wo?
error_reporting(E_ALL);
in der PHP davor setzen.
Gruß Bobby
Das wird jetzt angezeigt. Das hilft mir leider nicht weiter.
Die Grafik "http://www.messe-mediterraneo.de/test/captcha/captcha.php" kann nicht angezeigt werden, weil sie Fehler enthält.
Aber danke schon mal für den Tip! Hoffe als PHP Anfänger darf ich noch Fragen stellen?
Mahlzeit Topo,
Das wird jetzt angezeigt. Das hilft mir leider nicht weiter.
Hättest Du ChrisBs Beitrag aufmerksam gelesen, hätte es Dir geholfen:
"rufe dann das Script direkt über die Adresszeile des Browsers auf."
Die Grafik "http://www.messe-mediterraneo.de/test/captcha/captcha.php" kann nicht angezeigt werden, weil sie Fehler enthält.
Natürlich - schließlich handelt es sich nicht mehr um eine Grafik, die von dem PHP-Skript ausgegeben wird, sondern die Fehler- bzw. Logging-Meldungen.
Aber danke schon mal für den Tip! Hoffe als PHP Anfänger darf ich noch Fragen stellen?
Natürlich.
MfG,
EKKi
Hi,
Das wird jetzt angezeigt. Das hilft mir leider nicht weiter.
Die Grafik "http://www.messe-mediterraneo.de/test/captcha/captcha.php" kann nicht angezeigt werden, weil sie Fehler enthält.
Auch wenn du das über die Adresszeile aufrufst, denkt der Browser immer noch, dass das ein Bild sein muss, weil es mit einem entsprechenden Content-Type-Header ausgeliefert wurde.
Wenn du meinen Hinweis, den header-Aufruf im Script auszukommentieren, gefolgt wärst - dann würde der Browser es nicht mehr für ein Bild, sondern irgendwas textartiges halten; und dir dann auch zeigen, welche Bytes/Zeichen da drin stehen.
Alternativ: Abruf der Ressource mit dem web-sniffer zeigt, womit dieses vermeintliche Bild beginnt:
<br />
<b>Warning</b>: imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Could not find/open font in <b>/homepages/15/d181867173/htdocs/test/captcha/captcha.php</b> on line <b>32</b><br />
Das sind aber keine binären Bilddaten - sondern eine Fehlermeldung, mit der PHP dir sagt, warum es gar nicht dazu kam, ein gültiges Bild zu erzeugen.
(Und wie mit dieser Fehlermeldung wiederum umzugehen ist, dazu enthalten die Nutzerkommentare im Manual bzgl. der genannten Funktion brauchbare Hinweise.)
MfG ChrisB
(Und wie mit dieser Fehlermeldung wiederum umzugehen ist, dazu enthalten die Nutzerkommentare im Manual bzgl. der genannten Funktion brauchbare Hinweise.)
Welche ist bitte die genannte Funktion? Würde ja gerne danach suchen.
Danke,
Topo.
Hi,
(Und wie mit dieser Fehlermeldung wiederum umzugehen ist, dazu enthalten die Nutzerkommentare im Manual bzgl. der genannten Funktion brauchbare Hinweise.)
Welche ist bitte die genannte Funktion? Würde ja gerne danach suchen.
Wenn in der Meldung
<b>Warning</b>: imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Could not find/open font in <b>/homepages/15/d181867173/htdocs/test/captcha/captcha.php</b> on line <b>32</b><br />
direkt am Anfang hinter Warning von "imagettftext()" und später noch mal von "function.imagettftext" die Rede ist - ja welche Funktion kann dann jetzt wohl die "genannte" sein ...?
MfG ChrisB