login  Naam:   Wachtwoord: 
Registreer je!
 Forum

CAPTCHA-verificatie werkt niet.

Offline UpLink - 23/09/2007 18:19 (laatste wijziging 23/09/2007 18:20)
Avatar van UpLink... Beste SiMa's ...

Ik hoop dat iemand mij kan helpen en het gaat waarschijnlijk vrij simpel zijn maar ik kom er niet uit of ik overzie iets...

security_code.php ->

  1. <?php
  2.  
  3. class CaptchaSecurityImages {
  4.  
  5. var $font = 'monofont.ttf';
  6.  
  7. function generateCode($characters) {
  8.  
  9. $possible = '23456789bcdfghjkmnpqrstvwxyz';
  10. $code = '';
  11. $i = 0;
  12. while ($i < $characters) {
  13. $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
  14. $i++;
  15. }
  16. return $code;
  17. }
  18.  
  19. function CaptchaSecurityImages($width='120',$height='40',$characters='6') {
  20. $code = $this->generateCode($characters);
  21.  
  22. $font_size = $height * 0.75;
  23. $image = @imagecreate($width, $height) or die('Kan nieuwe afbeelding niet plaatsen.');
  24.  
  25. $background_color = imagecolorallocate($image, 255, 255, 255);
  26. $text_color = imagecolorallocate($image, 20, 40, 100);
  27. $noise_color = imagecolorallocate($image, 100, 120, 180);
  28.  
  29. for( $i=0; $i<($width*$height)/3; $i++ ) {
  30. imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
  31. }
  32.  
  33. for( $i=0; $i<($width*$height)/150; $i++ ) {
  34. imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
  35. }
  36.  
  37. $textbox = imagettfbbox($font_size, 0, $this->font, $code) or die('Fout in imagettfbbox functie');
  38. $x = ($width - $textbox[4])/2;
  39. $y = ($height - $textbox[5])/2;
  40. imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Fout in imagettftext functie');
  41.  
  42. header('Content-Type: image/jpeg');
  43. imagejpeg($image);
  44. imagedestroy($image);
  45. $_SESSION['security_code'] = $code;
  46. }
  47.  
  48. }
  49.  
  50. $width = isset($_GET['width']) ? $_GET['width'] : '120';
  51. $height = isset($_GET['height']) ? $_GET['height'] : '40';
  52. $characters = isset($_GET['characters']) && $_GET['characters'] > 1 ? $_GET['characters'] : '6';
  53.  
  54. $captcha = new CaptchaSecurityImages($width,$height,$characters);
  55.  
  56. ?>


en het stukje in het contactformulier voor de code: ->

  1. <td colspan="2">
  2. <img src="security_code.php?width=100&height=40&characters=5" /><br />
  3. <label for="security_code">Security Code: </label><input id="security_code" name="security_code" type="text" /></td>


Wat er juist fout gaat?
Wel, als ik het formulier invul en het verzend zonder de verificatie-code in te vullen, word het gewoon verzonden zonder dat er gecontroleerd word of de code is ingevuld en/of die ook correct is...

Kan iemand mij mss ff helpen aub?


Alvast bedankt...

3 antwoorden

Gesponsorde links
Offline mathiasB - 23/09/2007 18:25 (laatste wijziging 24/09/2007 16:54)
Avatar van mathiasB HTML interesse Ik werk ook met captcha en bij mij werkt het wel, momentje ik post het op plaatscode of het wordt te groot


CaptchaSecurityImages.php
Hier kan je zien dat monofont.ttf gebruikt wordt, vergeet niet dat dit lettertype in dezelfde map moet staan!

form

Hier haalde ik het vandaan

wees er ook zeker van dat al je pagina's de php extensie hebben.

FDingen die ik opmerkte bij jou:
Je opent <label> pas na de <img>
waarom for= ??
Offline Gerard - 23/09/2007 21:49
Avatar van Gerard Ouwe rakker
Citaat:
Fouten die ik opmerkte bij jou:
Je opent <label> pas na de <img>
waarom for= ??

Niet zomaar iets een "fout" noemen als je toevallig zelf niet weet wat het is. Het is in ieder geval correct en daar zit het probleem niet.
Offline UpLink - 24/09/2007 09:32
Avatar van UpLink ... Laten we het zo zeggen...

Ik gebruik dezelfde CAPTCHA als jij gebruikt mathiasB...

Met het enige verschil dat ik de paginanaam veranderd heb en dat mag in principe geen probleem geven...

Aan de code zelf heb ik niets veranderd...

Dus vraag ik mij wat er juist verkeerd kan gegaan zijn...

Zowel mijn contactformulier (contact.php), de pagina voor de CAPTCHA (security_code.php) en het font (monofont.ttf) staan in dezelfde map...

Ik snap het niet meer...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s