Captcha Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Captcha Problem

    Es geht mal wieder um mein captcha, welches zu finden ist unter http://www.cb-talk.de/captcha.1.0.4/captcha.php (leider ist der server gerade down).

    nun bekam ich von jemand der des verwenden wollte eine email mit dem problem das keine buchstaben angezeigt werden.

    könnte mir dabei jemand helfen?
    oder könntet ihr das mal testen und schreiben obs funktioniert? download
    einfach nur den order hochladen und captcha.php aufrufen, dann müsstes gehen :S

    ich hab langsam keine idee mehr woran es liegen könnte..

    gruss dany

  • #2
    Eventuell liegt es am Pfad für die font-Datei. Der Pfad muß bisweilen absolut sein:
    PHP-Code:
    "/var/www/deine.domain.de/font/font.ttf" 

    Kommentar


    • #3
      nein. es würde sonst eine fehlermeldung kommen, aber das dumme ist ja das wenn man http://www.violas-oase.de/test/captcha.php aufruft, man manchmal ein paar gelbe buchstaben des zufallscodes zu sehen bekommt. ich verstehe das absolut nicht

      noch wer ideen?
      oder jemand getestet?

      Kommentar


      • #4
        Original geschrieben von danysahne333
        das dumme ist ja das wenn man http://www.violas-oase.de/test/captcha.php aufruft, man manchmal ein paar gelbe buchstaben des zufallscodes zu sehen bekommt.
        Ja, bei so gut wie jedem Versuch - manchmal ein einzelnes gelbe Zeichen, öfters auch gar nichts.

        Wie funktioniert die Zeichenauswahl?
        Wie funktioniert die Farbauswahl?
        Wie funktioniert die Positionswahl?

        Hast du dafür gesorgt, dass da jeweils keine ungünstigen Werte bei herauskommen können?


        (Nein, ich habe mir das Script nicht angesehen.)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          also wie es auschaut, wird der zufallscode ja schonmal übergeben.

          hier mal die wichtigen relevanten teile des scriptes:

          die datei die den string generiert:

          PHP-Code:
              // Zufallszahl generieren
                  
          mt_srand((double)microtime()*1000000);
                  
          $CAPTCHA_RandVal mt_rand(1,2);
              
              
          // Buchstabensalat generieren jeh nachdem ob Randval 1 oder 2 ist    
                  
          switch ($CAPTCHA_RandVal) {
                  case 
          1:
                      
          // 48 bis 57 für ASCII codes 0 - 9
                      
          $CAPTCHA_RandVal mt_rand(4857);
                      break;
                  case 
          2:
                      
          // 65 bis 70 für ASCII codes grosse a - z
                      
          $CAPTCHA_RandVal mt_rand(6590);
                      break;
                  }
                  
              
          // Zufallscode umwandeln
                  
          $CAPTCHA_TempString chr($CAPTCHA_RandVal);

              return 
          $CAPTCHA_TempString;
              }

              
          // Länge des Strings festlegen
              
          function getCaptchaString($length){ 

                      
          $captchaString ""
              
          // Länge des Strings
                      
          for($i 0$i < (int) $length$i++){ 
                      
          $captchaString .= getRandomChar(); 
                      } 
              
          // Buchstaben ersetzen
                      
          $captchaString str_replace('I','E',str_replace('0','3',str_replace('1','S',str_replace('O','P',str_replace('4','A',$captchaString))))); 
              
          // String ausgeben
                      
          return $captchaString
                  } 

              
          // Code generieren
                     
          $CAPTCHA_TempString getCaptchaString(6); 
          der generierte string(nur zahlen und grosse buchstaben) wird dann an die session angehangen

          die datei die das bild generiert:
          es wird zunächst der string aus der session geholt und dann wird alles auf das bild gepackt. zum schluss noch ein grafik drübergelegt und dann ausgegeben:
          PHP-Code:
          // Texteigenschaften bestimmen
          $Textgroesse "32";
          $Schriftart "captcha_files/truetype.ttf";

          // Textfarben ins Array speichern
          $textfarbe = array(
              
          imagecolorallocate($Grafik128128128),
              
          imagecolorallocate($Grafik000),
              
          imagecolorallocate($Grafik501714),
              
          imagecolorallocate($Grafik1280128),
              
          imagecolorallocate($Grafik128128255),
              
          imagecolorallocate($Grafik255128128),
              
          imagecolorallocate($Grafik1921220),
              
          imagecolorallocate($Grafik25094250),
              
          imagecolorallocate($Grafik122146224),
              
          imagecolorallocate($Grafik122155180)
          );

          // Winkel zufällig generieren
          mt_srand((double)microtime()*1000000);
              
          $Winkel1 mt_rand(-1313); 
          mt_srand((double)microtime()*1000000);
              
          $Winkel2 mt_rand(-1313); 
          mt_srand((double)microtime()*1000000);
              
          $Winkel3 mt_rand(-1313); 
          mt_srand((double)microtime()*1000000);
              
          $Winkel4 mt_rand(-1313); 
          mt_srand((double)microtime()*1000000);
              
          $Winkel5 mt_rand(-1313); 
          mt_srand((double)microtime()*1000000);
              
          $Winkel6 mt_rand(-1313); 

          // Texthoehe zufällig generieren
          mt_srand((double)microtime()*1000000);
              
          $hoehe1 mt_rand(4055); 
          mt_srand((double)microtime()*1000000);
              
          $hoehe2 mt_rand(4055); 
          mt_srand((double)microtime()*1000000);
              
          $hoehe3 mt_rand(4055); 
          mt_srand((double)microtime()*1000000);
              
          $hoehe4 mt_rand(4055); 
          mt_srand((double)microtime()*1000000);
              
          $hoehe5 mt_rand(4055); 
          mt_srand((double)microtime()*1000000);
              
          $hoehe6 mt_rand(4055);

          // Text auf das Bild schreiben
          imagettftext($Grafik$Textgroesse$Winkel15$hoehe1$Textfarbe1 $textfarbe[array_rand($textfarbe)] , $Schriftart$CAPTCHA_RandomText[0]);
          imagettftext($Grafik$Textgroesse$Winkel240$hoehe2$Textfarbe2 $textfarbe[array_rand($textfarbe)] , $Schriftart$CAPTCHA_RandomText[1]);
          imagettftext($Grafik$Textgroesse$Winkel375$hoehe3$Textfarbe3 $textfarbe[array_rand($textfarbe)] , $Schriftart$CAPTCHA_RandomText[2]);
          imagettftext($Grafik$Textgroesse$Winkel4110$hoehe4$Textfarbe4 $textfarbe[array_rand($textfarbe)] , $Schriftart$CAPTCHA_RandomText[3]);
          imagettftext($Grafik$Textgroesse$Winkel5145$hoehe5$Textfarbe5 $textfarbe[array_rand($textfarbe)] , $Schriftart$CAPTCHA_RandomText[4]);
          imagettftext($Grafik$Textgroesse$Winkel6186$hoehe6$Textfarbe6 $textfarbe[array_rand($textfarbe)] , $Schriftart$CAPTCHA_RandomText[5]); 

          Kommentar

          Lädt...
          X