Captcha Code

  • PHP

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von J-F.

    Captcha Code

    Hallo
    in diesen Tutorial will ich euch zeigen wie man ganz einfach mit PHP ein Captcha Code System coded.

    Wir nennen die erste Datei mal "Captcha.php". Gebe Folgenden Code da ein:

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. $breite = 150;
    4. $hoehe = 50;
    5. $counter_l = 10;
    6. $counter_w = 7;
    7. $sec_word = "";
    8. for($w=0;$counter_w>$w;$w++)
    9. {
    10. $letter = rand(97,122);
    11. $sec_word .= chr($letter);
    12. }
    13. header('Content-Type: image/png');
    14. $img = imagecreate($breite,$hoehe);
    15. $background = imagecolorallocate($img, rand(200,255),rand(200,255),rand(299,255));
    16. for ($l=0;$counter_l>$l;$l++)
    17. {
    18. $color_l = imagecolorallocate($img,rand(150,200),rand(150,200),rand(150,200));
    19. imagedashedline($img,0,rand(0,50),150,rand(0,50),$color_l);
    20. }
    21. for($i=0;$counter_w>$i;$i++)
    22. {
    23. $size = "5";
    24. $x = $i*15+15;
    25. $color_w = imagecolorallocate($img,rand(0,100),rand(0,100),rand(0,100));
    26. imagestring($img,$size,$x,10,$sec_word[$i],$color_w);
    27. }
    28. imagepng($img);
    29. imagedestroy($img);
    30. $_SESSION['sec_word'] = $sec_word;
    31. ?>


    Die nächste Datei nennen wir mal "form.php" mit folgenden Code:

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. if($_POST['sub'])
    4. {
    5. if($_POST['captcha'] == $_SESSION['sec_word'])
    6. {
    7. echo "Richtig!!!";
    8. }else{
    9. echo "Falsch ;(";
    10. }
    11. }
    12. ?>
    13. <form action=form.php method=POST>
    14. <input type="text" name="captcha" /> <br />
    15. <img src="captcha.php" /><br />
    16. <input type="submit" name="sub" value"Test" />
    17. </form>


    So nun nur noch auf eurem Webserver hochladen.

    Test: Klick
    Download: Klick

    Danke :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GirlOnFire“ ()

    wenn du willst dass es sicherer ist:

    verwende random fonts, random farben, random positionen, dreh die buchstaben, verwende einen hintergrund der wirklich random ist und nicht nur solche streifen.

    im moment wäre es relativ einfach diesen zu knacken
    Du kannst die Buchstaben alle einfach aus dem Hintergrund herausfiltern, da sie eine einheitliche Farbe haben. Weil du die selbe Schriftart verwendest, ist es weiterhin ziemlich einfach, aus dem herausgefilterten Bild den String manuell herauszulesen...

    Gruß, Jan