Advertisement
ShadyPL

Zastosowanie Paint Library do captchy

Jan 4th, 2014
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.49 KB | None | 0 0
  1. <?php
  2. /** src lib: http://pastebin.com/a0FmYzeY **/
  3.  
  4. ob_start();
  5. session_start();
  6.  
  7. require './paint.php';
  8.  
  9. $paint = new Paint();
  10.  
  11. # wymiary naszego obrazka
  12. $szerokosc = 145;
  13. $wysokosc  = 45;
  14.  
  15. # stworzenie nowego obrazka wypełnionego kolorem
  16. $captcha = $paint->stworz( $szerokosc, $wysokosc, '180, 170, 144' );
  17.  
  18. # wylosowanie liczby kresek utrudniających odczyt kodu
  19. $liczba_kresek = rand( 20, 30 );
  20.  
  21. # rysowanie wylosowanej ilości kresek z różnymi wymiarami
  22. for ( $i = 0; $i < $liczba_kresek; $i++ )
  23.   {
  24.     $sz = rand( 0, $szerokosc + 10 );
  25.     $x2 = rand( 0, $wysokosc );
  26.     $y2 = rand( 0, max( $szerokosc, $szerokosc - 15 ) );
  27.     $paint->rysuj( $captcha, 'linia', '255,25,120', true, $sz, 1, $x2, $y2 );
  28.   }
  29.  
  30. # generowanie losowego ciągu
  31. $kod_captcha   = '';
  32. $zakres_znakow = '1234789ABDEFGJKLMPQTUVWXYZ';
  33. $iterator      = 0;
  34.  
  35. while ( $iterator < 5 )
  36.   {
  37.     $kod_captcha .= substr( $zakres_znakow, mt_rand( 0, strlen( $zakres_znakow ) - 1 ), 1 );
  38.     $iterator++;
  39.   }
  40.  
  41. # wygenerowany kod przypisujemy do sesji
  42. # zamieniamy wszystkie litery w kodzie na małe
  43. $_SESSION['kod_captcha'] = strtolower( $kod_captcha );
  44.  
  45. # nanosimy stworzony kod na obrazek
  46. $paint->tekst( $captcha, rand( 18, 20 ), rand( -5, 5 ), 40, 25, '0,0,0', 'captcha_font', $_SESSION['kod_captcha'] );
  47.  
  48. # wysyłamy obrazek do przeglądarki
  49. # kompresujemy jakość png do wartości 5
  50. $paint->wyswietl( $captcha, 'png', 5 );
  51.  
  52. # na koniec usuwamy z pamięci obrazek
  53. $paint->wyczysc( $captcha );
  54. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement