Fehler bei CAPTCHA Erstellung mit imagettftext()

Hallo, wie der Name schon sagt, ich kann kein CAPTCHA mit imagettftxt() erstellen.
Habe dieses Skript von einem bekannten, jedoch weiß auch er nicht weiter…

Es werden einfach keine Schriftzeichen auf das CAPTCHA Bild gesetzt!?!

Kann mir jemand helfen?

[PHP]<?php
############################################################
############################################################
############### Captcha v1.1 by Die Zahl ###################
############### webmaster AT studio-y.de ###################
############################################################

Beispiele; Zeichen die verwendet werden sollen:

Nur Zahlen

$possible = „0123456789“;

Nur Kleinbuchstaben

$possible = „abcdefghijklmnopqrstuvwxyz“;

Nur Grossbuchstaben

$possible = „ABCDEFGHIJKLMNOPQRSTUVWXYZ“;

Zahlen, Gross- und Kleinbuchstaben

wobei die Problematik bei 0 und o, i und L usw. umgangen worden ist

$possible = „ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789“;

############################################################
############################################################

Einbau des Script:

Vor POST: (im FORM)

Bild:

Eingabefeld:

Nach dem POST:

@session_start();

if(isset($_SESSION[‚captcha_spam‘]) AND $_POST[„cap“] == $_SESSION[‚captcha_spam‘]){

unset($_SESSION[‚captcha_spam‘]);

< hier Ihr Script welches ausgeführt wird, wenn der Captchacode richtig eingegeben wurde >

} else {

< hier Ihr Script welches ausgeführt wird, wenn der Captchacode FALSCH eingegeben wurde >

}

############################################################
############################################################
############################################################
############################################################
error_reporting(0);
@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());

  $possible="1234567890"; ## Welche Zeichen verwendet werden
  $str="";
  while(strlen($str)<$len) {
    $str.=substr($possible,(rand()%(strlen($possible))),1);
  }

return($str);
}

$text = randomString(5); ## Anzahl der Zeichen
$_SESSION[‚captcha_spam‘] = $text;

header('Content-type: image/png');

$bild = rand(1,6); ## Zufallshintergrundbild bsp: captcha$bild.PNG
$img = ImageCreateFromPNG(‚captcha‘.$bild.‚.PNG‘);
$color = ImageColorAllocate($img, 0, 0, 0); ## Farbe
//$ttf = $_SERVER[‚DOCUMENT_ROOT‘].„/CAPTCHA/ParryHotter.ttf“; ## Schriftart
$ttf = „ParryHotter.ttf“; ## Schriftart
$ttfsize = 35; ## Schriftgroesse
$angle = rand(0,5);
$t_x = rand(5,30); ## Zufallsposition X
$t_y = 30; ## Position Y
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
?> [/PHP]Vielen Dank schonmal, Luk.

Hallo Luk,

existiert der Font ParryHotter.ttf? Überprüfe mal dessen Pfad.

Eventuell kommentiere mal die Zeile „header(‚Content-type: image/png‘);“ aus (mit zwie Backslashes) und üffne dann mal die captcha.php im Browser. Wird eine Fehlermeldung angezeigt?

MfG Icy

Hi Icy!
Danke fü deine schnelle Hilfe!
Ja, der Font existiert (und heißt nicht Harry Potter!) :slight_smile:
Aber trotzdem lags an ihm, habe mal eine andere ttf file verwendet und es geht xD

Ist also geklärt! Trotzdem danke!

→ kann geschlossen werden :wink: