Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]captcha
Forum PHP.pl > Forum > Przedszkole
slawek3422
Witam.
Znalazłem w necie skrypt, który chciałbym użyć w swoim formularzu ale nie bardzo wiem jak go użyć. Zrobiłem grafiki, captcha się generuje bez problemów ale mam problem bo w formularzu mam pole input do wpisania znaków z obrazka ale nie wiem z czym otrzymany ciąg porównać. Próbowałem wyświetlić zmienną $znak ale nie zwraca nic ...
  1. <?php
  2. header('Content-Type: image/jpeg');
  3.  
  4. $tla = glob("captcha_bcg/{*.jpg,*.jpeg}", GLOB_BRACE);
  5. $czcionki = glob("captcha_fonts/*.ttf");
  6.  
  7. $znaki = 'ABCDEFGHIJKLMNPQRSTUWXYZ123456789';
  8.  
  9. $obrazek_tla = $tla[array_rand($tla)];
  10. $liczba_znakow = rand(4, 6);
  11.  
  12. $cap = imagecreatefromjpeg($obrazek_tla);
  13.  
  14. $kolor = imagecolorallocate($cap, 250, 250, 250);
  15. $linie = imagecolorallocate($cap, 205, 205, 205);
  16.  
  17. for($x = 1; $x <= 50; $x++) // powtarzamy 50 razy - rysujemy 50 linii
  18. imageline( // funkcja rysująca linię
  19. $cap, // uchwyt obrazka
  20. 0, // współrzędna X początku linii
  21. rand(-100,imagesy($cap)+100), // współrzędna Y początku linii
  22. imagesx($cap), // współrzędna X końca linii
  23. rand(-100,imagesy($cap)+100), // współrzędna Y końca linii
  24. $linie // kolor linii
  25. );
  26.  
  27. for($x = 1; $x <= $liczba_znakow; $x++)
  28. {
  29. $czcionka = $czcionki[array_rand($czcionki)];
  30. $znak = $znaki[rand(0, strlen($znaki)-1)];
  31.  
  32. $odleglosc_miedzy_znakami = (round(imagesx($cap) / $liczba_znakow+1)-10)*($x-1)+20;
  33.  
  34. imagettftext( // funkcja pisząca tekst
  35. $cap, // uchwyt obrazka
  36. rand(20, 30), // rozmiar czcionki
  37. rand(-15, 15), // naczylenie znaku
  38. $odleglosc_miedzy_znakami, // odległość między znakami
  39. rand(40, 60), // położenie względem górnej krawędzi obrazka
  40. $kolor,
  41. $czcionka,
  42. $znak
  43. );
  44. }
  45.  
  46. imagejpeg($cap);
  47. ?>


sprawa pewnie jest banalna ... ale nie wiem jak to ruszyć
darko
Wygenerowany ciąg znaków przechowujesz w zmiennej $znak, zapisz wartość tej zmiennej w sesji, jak odbierzesz dane z formularza, to odczytaj to, co przyszło i porównaj z tym, co jest w sesji.
slawek3422
thx smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.