login  Naam:   Wachtwoord: 
Registreer je!
 Forum

sessie fout? (Opgelost)

Offline Bart - 11/12/2007 19:39
Avatar van BartPHP expert Hallo,
jup de zoveelste, captcha. Helaas, deze fout ben ik nog niet tegengekomen in de topics die ik heb gelezen over captcha problemen.
Dit is mijn code:
  1. <?php
  2. function key_gen($length)
  3. {
  4. $generated_key = "";
  5. while(strlen($generated_key) < $length)
  6. {
  7. $random = mt_rand(48, 90);
  8. if($random < 58 OR $random > 64) $generated_key .= strtolower(chr($random));
  9. }
  10. return $generated_key;
  11. }
  12. $_SESSION['code'] = key_gen(5);
  13. echo 'Type de volgende code over: <br> <b>'.$_SESSION['code'].'</b>';
  14. if(isset($_POST['submit']))
  15. {
  16. if($_POST['check'] == $_SESSION['code'])
  17. {
  18. echo 'goed';
  19. }
  20. else
  21. {
  22. echo 'fout';
  23. }
  24. }
  25.  
  26. ?>
  27. <form action="" name="blaat" method="POST">
  28. <input type="text" name="check"><br>
  29. <input type="submit" name="submit" value="check!">
  30. </form>

Als ik de code netjes overtype, geeft ie aan dat het fout is.
Als ik niets invul, geeft ie aan dat het fout is.
Als ik de vorige code intype, geeft ie aan dat het fout is.
Captcha is pwning meh  
Hoe kan ik dit oplossen?

7 antwoorden

Gesponsorde links
Offline fluaju - 11/12/2007 19:41
Avatar van fluaju IRC nerd geen captcha gebruiken?
Offline Bart - 11/12/2007 19:42
Avatar van Bart PHP expert Wat denk je zelf, zou dat een oplossing zijn, iemand gewoon mijn zielige db vol laten spammen? 
Offline Flex1986 - 11/12/2007 19:43 (laatste wijziging 11/12/2007 19:44)
Avatar van Flex1986 Gouden medaille

Senior Member
Uhmm als je nu je formulier post dan wordt je key opnieuw gemaakt en opgeslagen in je sessie dus komen ze inderdaad niet overeen.

Edit: Er zijn betere methodes als captcha hoor ik ben het met fluja eens liever geen captcha irritante overtypen  
Offline Bart - 11/12/2007 19:51
Avatar van Bart PHP expert Wat zou ik kunnen doen om dat probleem op te lossen?
En wat voor betere methodes zijn er dan?
Offline BigBug - 11/12/2007 22:10
Avatar van BigBug PHP expert Na een actie > In DB pleuren. Cronjob elke x seconden? 
Offline ranco - 11/12/2007 23:50
Avatar van ranco PHP gevorderde
Quicky schreef:
En wat voor betere methodes zijn er dan?


Nou, er zijn ook systemen die gewoon een zeer simpele vraag stellen. Wanneer je hier het correcte antwoord op weet mag je door, anders wordt het formulier niet gepost. Ik weet alleen niet hoe dit systeem wordt genoemd.
Offline zointer - 12/12/2007 01:18 (laatste wijziging 12/12/2007 01:25)
Avatar van zointer HTML gevorderde @ts je script zal op die wijze niet werken maar wel op deze.
  1. <?php
  2. if(isset($_POST['submit']))
  3. {
  4. if($_POST['check'] == $_SESSION['code'])
  5. {
  6. echo 'goed';
  7. }
  8. else
  9. {
  10. echo 'fout';
  11. session_destroy(); /*bij fout moet je ook nog de sessie verwijderen ;)*/
  12. }
  13. }
  14. else
  15. {
  16. function key_gen($length)
  17. {
  18. $generated_key = "";
  19. while(strlen($generated_key) < $length)
  20. {
  21. $random = mt_rand(48, 90);
  22. if($random < 58 OR $random > 64) $generated_key .= strtolower(chr($random));
  23. }
  24. return $generated_key;
  25. }
  26.  
  27. $_SESSION['code'] = key_gen(5);
  28.  
  29. echo 'Type de volgende code over: <br> <b>'.$_SESSION['code'].'</b>';
  30. ?>
  31.  
  32. <form action="" name="blaat" method="POST">
  33. <input type="text" name="check"><br>
  34. <input type="submit" name="submit" value="check!">
  35. </form>
  36.  
  37. <?
  38. /*verder moet je maar aanpassen naar eigen wensen ;)*/
  39. }
  40. ?>

@ranco met jou bijdrage hier is de ts niks gebaat en zijn probleem niet opgelost.
hier mooi topic over captcha


/*edit typo*
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s