You are not logged in.

  • Login

1

Thursday, June 23rd 2011, 11:04am

Captcha-Fehler

Hallo zusammen,

ich hab ne Frage zu meinem Capchta... ich habs eins aus nem tutorital kopiert. Auf meinem localhost funktioniert es ohne Probleme, aber auf meinem Server nicht.
Kann mir das einer erklären?

Fehlermeldung:
Die Grafik "http://62.75.245.34/[...]/captcha.php" kann nicht angezeigt werden, weil sie Fehler enthält.

Code:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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 = "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);
?>


Danke schonmal.

LG

Fipsi

2

Thursday, June 23rd 2011, 11:51am

Es könnte sein das die GD-Lib fehlt.

Kommentiere mal die Zeilen

PHP Quellcode

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


und

PHP Quellcode

1
imagepng($img);


aus.

Dann sollten Fehlermeldungen erscheinen, die sollten dir dann helfen ;)

3

Thursday, June 23rd 2011, 3:43pm

Hi,

ja, du hattest recht:

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /var/www/vhosts/fipsii.de/httpdocs/data/templates/captacha/captcha.php on line 32

kann jez aber nix damit anfangen...
jemand anderes vllt. bitte?

4

Thursday, June 23rd 2011, 3:47pm

Quoted

Could not find/open font in

Konnte die Schriftart nicht finden / öffnen.

Da als Schriftart "XFILES.TTF" angegeben ist, ist die Datei wohl nicht da ... Kann das sein? ;)

5

Thursday, June 23rd 2011, 3:49pm

nein, ich habs gerade kontrolliert, sie is da und habs auch versucht mit allem klein geschrieben (datei und das script), bringts aber auch nix

6

Thursday, June 23rd 2011, 4:13pm

Nur zum Verständnis:

DIe Schriftart (xfiles.ttf) liegt im gleichen Verzeichnis wie das Skript?

7

Thursday, June 23rd 2011, 6:39pm

ja

8

Monday, June 27th 2011, 6:46pm

Hallo Leute,

ich hab immernoch den Fehler.
Könnt ihr mir bitte helfen?

LG
Fipsi

9

Monday, June 27th 2011, 6:55pm

Versuch einfach mal den kompletten Pfad zum Font.

Also:

PHP Quellcode

1
$ttf = "/var/www/vhosts/fipsii.de/httpdocs/data/templates/captacha/XFILES.TTF";


€dit: Prüfe auch ob die Datei genau dort liegt.

10

Monday, June 27th 2011, 7:03pm

wenn du oben mal guckst: ich hab gar nich den langen pfad, weil beide dateien im gleichen ordner liegen, sondenr nur den namen der datei mit dateiendung drin stehen;)

11

Monday, June 27th 2011, 7:23pm

Du sollst es ja auch mal probieren ob es dann geht ;)

12

Monday, June 27th 2011, 7:30pm

hm... wenn ichs ohne den langen pfad mach, sagt er wenigstens noch wa.s.. wenn ichs mit dem pfad mach, spuckt der mir gar nix aus...

13

Monday, June 27th 2011, 7:32pm

Kann es sein das du noch header(xyz); und imagepng(xyz); auskommentiert hast?

14

Monday, June 27th 2011, 7:38pm

also mit folgendem code ist immernoch ein fehler drine

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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 = "/var/www/vhosts/fipsii.de/httpdocs/data/templates/captacha/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);
   imagedestroy($img);

15

Monday, June 27th 2011, 7:46pm

Deine letzen 3 Zeilen sollten auch so aussehen:

PHP Quellcode

1
2
3
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);

16

Monday, June 27th 2011, 7:54pm

gm... wnen ich die datei selber aufruf gehts, aber bie der registrier-datei funzts nich... komisch... schon per <img src="">, oder?

17

Monday, June 27th 2011, 7:56pm

Sowas sollte eigentlich selber auffallen, aber dein einer Ordner heißt "captacha" und das liegt dein Fehler drin ;)

18

Monday, June 27th 2011, 7:58pm

auf die idee bin cih auch schon gekommen, das is es nich...

Edit:
jez funzts, danke schön

Similar threads

Social bookmarks