Hallo, ich bin etwas eingerostet und arbeite (mal wieder) an meinem Kontaktformular. Ich habe eine captcha.php, die ein externes Bild und eine externe Schriftart benutzt. Wenn ich die captcha.php als Bild einbinde, wird mir nichts angezeigt, er findet sie angeblich nicht und zeigt nur den Alt-Tag an. Ich glaube, es liegt daran, dass die captcha.php die externen Dateien nicht findet, bin mir aber nicht sicher… Kann mir jemand helfen?
Ordnerhierarchie:
index.php (mit Include von kontakt.php)
→ site
—> kontakt.php
—> captcha.php
—> resources
-----> captcha.jpg
-----> micross.ttf
Nimm mal das @ vor dem imagecreate weg, dann solltest du eventuelle Script-Fehlermeldungen sehen.
Wenn das Bild nicht angezeigt wird, bedeutet das nicht zwangsläufig, dass die Php-Datei nicht gefunden wird, es kann auch ein anderer (Script) Fehler vorliegen.
?>[/PHP]Und jetzt kommen noch 2 Fehlermeldungen:
[SIZE=2]- [/SIZE][SIZE=2]Warning: Wrong parameter count for imagestring() in C:>Pfad abgekürzt<\site\captcha.php on line [I]22
[/I][/SIZE][SIZE=2]Warning: Cannot modify header information - headers already sent by (output started at C:[/SIZE][SIZE=2]>Pfad abgekürzt<[/SIZE][SIZE=2]\site\captcha.php:22) in C:[/SIZE][SIZE=2]>Pfad abgekürzt<[/SIZE][SIZE=2]\site\captcha.php on line [I]24
[EDIT]
[/I]Wenn ich „[/SIZE]header(„Content-Type: image/jpeg“);“ nach oben verschiebe, bekomme ich zwar keine Fehlermeldung mehr, jedoch wird mir auch kein Bild bzw. keine Captcha generiert…
Die header-Geschichte ist ein Folgefehler der Ausgabe des imagestring-Fehlers (die Fehlermeldung wird an der Browser geschickt, wodurch die Header gesendet werden müssen und nachher nicht mehr verändert werden können). Das Problem liegt aber in imagestring. Ich habe mir den Code insgesamt nicht genau angeschaut, aber du übergibst einen Parameter zuviel. Die Signatur der Funktion erwartet maximal sechs:
bool imagestring ( resource $image , int $font , int $x , int $y ,
string $string , int $color )
Can be 1, 2, 3, 4, 5 for built-in fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or any of your own font identifiers registered with imageloadfont()
Versuch halt wie es im Manual steht mal die Font zu laden mit imageloadfont()