1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Captcha Session Problem

Dieses Thema im Forum "PHP" wurde erstellt von EuroCent, 18. Juni 2009.

  1. EuroCent

    EuroCent KlappStuhl 2.0

    Wieder einmal hat wer ein Captcha Session Problem und dieses mal bin ich es -.-

    PHP:
    1.  
    2. <?php
    3. $img = imagecreatetruecolor(100, 30);
    4.  
    5. $black = imagecolorallocate($img, 0, 0, 0);
    6. $white = imagecolorallocate($img, 255, 255, 255);
    7. $red = imagecolorallocate($img, 255, 0, 0);
    8. $pink = imagecolorallocate($img, 200, 0, 150);
    9. $grey = imagecolorallocate($img, 150, 150, 150);
    10. $blue = imagecolorallocate($img, 51, 167, 198);
    11.  
    12. function randomString($length) {
    13.     $chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjklmnpqrstuvwxyz";
    14.     srand((double)microtime()*1000000);
    15.     $str = "";
    16.     $i = 0;
    17.     while($i <= $length) {
    18.         $num = rand() % 33;
    19.         $tmp = substr($chars, $num, 1);
    20.         $str = $str . $tmp;
    21.         $i++;
    22.     }
    23.     return $str;
    24. }
    25.  
    26. for($i=1; $i <= rand(1, 1000); $i++) {
    27.     $color = (rand(1, 2) == 1) ? $grey : $black;
    28.     //imageline($img, rand(0, 100), rand(0, 20), rand(0, 100)+5, rand(0, 20)+5, $color);
    29. }
    30.  
    31. imagefill($img, 0, 0, $blue);
    32.  
    33. $string = randomString(rand(4, 5));
    34.  
    35. $_SESSION['string'] = $string;
    36.  
    37. $font = array("Arial,ttf", "Dungeon,ttf");
    38.  
    39. imagettftext($img, rand(10, 13), rand(-5, 5), rand(5, 25), rand(16, 22), $white, "Dungeon,ttf", $string);
    40. header("Content-type: image/png");
    41. imagepng($img);
    42. ?>
    43.  
    Dies ist mein image.php File in dem ich das Captcha zeichnen lasse

    Es funktioniert auch und die Zeichen werden mir auch wie gewünscht angezeigt!

    Das Problem ist das er mir die Session nicht ausliest und somit hab ich nicht die möglichkeit die Funktion darauf zu prüfen ob den der eingegebene Code richtig oder Falsch ist

    per
    HTML:
    1. <img src="image.php" border="0" title="" />
    lasse ich den Captcha als Bild einfliessen nur weiss ich jetzt nicht wie ich die Session herrausfinde damit ich eine überprüfung machen kann bevor das Formular an meine Datenbank verschickt wird.
     
  2. kuddeldaddeldu

    kuddeldaddeldu Erfahrenes Mitglied

    Hi,

    Du solltest auch zeigen, wo Du denn versuchst, den eingegebenen Code zu prüfen, bzw. den String aus der Session zu lesen.

    Und achte bitte mal ein wenig auf Kommasetzung, worum ich Dich schon einmal gebeten habe. Manche Sätze muss ich wirklich drei mal lesen.

    LG
     
  3. Loomis

    Loomis Mitglied Bunt

    Wieso nimmst du nicht ein fertiges Script?
    Man muss nicht immer alles selber machen oder das "Rad neu Erfinden", im Internet findest du haufenweise Funktionen dieser Art, die tausendmal besser sind.
     
  4. EuroCent

    EuroCent KlappStuhl 2.0

    Hmm... ich hab bisher kein einfaches und strukturiertes gefunden sonst hätt ich auch sowas genommen

    Wenn du eines kennst dann wäre ich dir sehr verbunden wenn du es mir verraten könntest.

    @kuddeldaddeldu
    Ähm... jetzt mach mal kein Drama draus nur weil keine Kommatas vorhanden sind.
    Sind wir hier in der Schule o_O
    Also ich bitte dich!
    Bis jetzt hat sich noch keiner so Beschwerd wie du! :-(

    Und komm mir bitte nicht wieder mit den Regeln

    Aber zurück zum Thema

    PHP:
    1. if($_POST['secure'] != $_SESSION['string']) {
    2. $errormsg .= "Falsch";
    3. }
    Wie du sehen kannst lass ich es so überprüfen!
    Nur jetzt es so das selbst wenn ich keinen oder einen Falschen eingebe kann ich das Formular abschicken.
    Gebe ich den Richtigen ein ist dieser Verkehrt obwohl dies richtig ist
     
  5. Flex

    Flex (aka Felix Jacobi)

    Dann tu ich es. Es steht in den Regeln. Deine meist wirren Beiträge sind durch fehlende Kommas noch schwerer zu lesen, da es keine Sinnabschnitte gibt.

    Und wir PUs dürfen nun mal mehr meckern als andere Leute.


    Zum Thema:
    www.recaptcha.net
     
    Zuletzt bearbeitet: 18. Juni 2009
  6. EuroCent

    EuroCent KlappStuhl 2.0

    Danke für den Link.

    PS: Ich werd mal schauen das ich für meine Tastatur, ein text-baukasten mit Rechtschreibung und richtiger Kommata setzung installieren kann xD

    So gnausrig geht es nur hier so vor, naja was solls ich will ja schliesslich was von euch und nicht umgekehrt.
     
  7. Flex

    Flex (aka Felix Jacobi)

    Und genau aus diesem Grund sind auch viele Leute hier, weil nur wir so knausrig sind und auf gewisse Standards der Kommunikation achten ;)
     
  8. EuroCent

    EuroCent KlappStuhl 2.0

    Sei es jetzt mal dahin gestellt. Ich werde mich darum bemühen....

    Alles andere ist schon besprochen.

    MfG

    Lenox
     
  9. Loomis

    Loomis Mitglied Bunt

Diese Seite empfehlen