Generiertes Captcha Bild anzeigen

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Generiertes Captcha Bild anzeigen

Beitragvon Jod » 17.07.2007, 15:44

Hallo

Ich wollte als Test mal rasch das Captcha Bild ausgeben lassen. Leider tut sich da nichts, bzw. gar nichts.

Ich habe im Rootvezeichnis den Ornder captcha erstellt, welcher foglende Dateienenthält:

captcha.php
captcha.PNG
XFILES.TTF
arial.ttf


Auf folgender Seite greife ich auf captcha.php zu. Müsste doch eigentlich funktionieren und das Bild samt captcha ausspucken?
Ändere ich den Image-Pfad auf captcha.PNG, wir dieses problemlos dargestellt.



Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>

<div><img src="captcha/captcha.php" border="0" title="Sicherheitscode" /></div>

</body>
</html>


Hier die Scripts:

Bildausgabe: http://www.troumfabrik.ch/capt.php
fehler.php: http://www.troumfabrik.ch/captcha/fehler.php

Vielleicht kann mir ja jemand weiter helfen. Besten Dank.
Jod
 
Beiträge: 3
Registriert: 17.07.2007, 15:14

Beitragvon Steef389 » 17.07.2007, 23:13

Warning: imagettftext(): Could not find/open font in /home/troumfab/public_html/captcha/fehler.php on line 33

Ich denke, dass der Pfad zur Schriftadtei in der captcha/fehler.php nicht stimmt
Steef389
 
Beiträge: 57
Registriert: 20.06.2007, 20:31

Beitragvon Jod » 18.07.2007, 08:36

Hi

Ich denke, dass der Pfad zur Schriftadtei in der captcha/fehler.php nicht stimmt


Dieses Gefühl habe ich auch, aber ich habe jetzt schon einiges versucht. Zum Beispiel habe ich es mit absoluten Pfaden versucht usw. Aber egal wie ich die Variable $ttf auch ändere, gibt's mir in der fehler.php den wohlbekannten Fehler
Warning: imagettftext(): Could not find/open font in /home/troumfab/public_html/captcha/fehler.php on line 33


Irgendwo habe ich einen dummen Fehler... :?

mein captcha.php:
Code: Alles auswählen
<?php session_start();
   unset($_SESSION['captcha_spam']);

   function randomString($len) {
      srand(date("s"));
      //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 = "http://www.troumfabrik.ch/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);
   
?>

Mein fehler.php
Code: Alles auswählen
<?php session_start();
   echo "<h2>Infos über das Captcha</h2>";
   unset($_SESSION['captcha_spam']);
   $text = rand(1000,10000); //Zufallszahl

   function encrypt($string, $key) {
   $result = '';
   for($i=0; $i<strlen($string); $i++) {
      $char = substr($string, $i, 1);
      $keychar = substr($key, ($i % strlen($key))-1, 1);
      $char = chr(ord($char)+ord($keychar));
      $result.=$char;
   }
   return base64_encode($result);
   }

   $_SESSION['captcha_spam'] = encrypt($text, "8h384ls94"); //Key
   $_SESSION['captcha_spam'] = str_replace("=", "", $_SESSION['captcha_spam']);

   echo "Zahlencode: ".$text."<br>";
   echo "Session Captcha: ".$_SESSION['captcha_spam']."<br>";
         
   $img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
   $color = ImageColorAllocate($img, 0, 0, 0); //Farbe
   $ttf = "/XFILES.TTF"; //Schriftart
   
   echo "<br>Schriftpfad: ".$ttf."<br>";

   $ttfsize = 25; //Schriftgrösse
   $angle = rand(0,5);
   $t_x = rand(5,50);
   $t_y = 35;
   imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
   
   error_reporting(E_ALL);

   echo "Image (Zeichenwirrwar):<br>";
   imagepng($img);
   imagedestroy($img);
?>


Hat vielleicht noch jemand einen Tipp?

Wenn ich das captcha.php direkt per Link abrufe, erhalte ich einen Server error. http://www.troumfabrik.ch/captcha/captcha.php
Jod
 
Beiträge: 3
Registriert: 17.07.2007, 15:14

Beitragvon Rob [Admin] » 18.07.2007, 11:19

Jod hat geschrieben: $ttf = "http://www.troumfabrik.ch/captcha/XFILES.TTF"; //Schriftart


Ändern in:

$ttf = "/home/troumfab/public_html/captcha/XFILES.TTF"; //Schriftart
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon Jod » 18.07.2007, 11:51

Super, besten Dank auch. Jetzt funktionierts perfekt! Gruss
Jod
 
Beiträge: 3
Registriert: 17.07.2007, 15:14


Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron