• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehler bei CAPTCHA Erstellung mit imagettftext()

Luk.Online

Neues Mitglied
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: <img src="captcha.php" border="0">
## Eingabefeld: <input type="text" name="cap" size="5">
##
## 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);
?>
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!) :)
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 ;)
 
Zurück
Oben