Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generator banalnych tokenów
Forum PHP.pl > Forum > Gotowe rozwiązania
Athlan
Z nudow w 10 min napisalem generator tokenów

przykład: http://qmple.pl/templates/token.php

a oto super zaawansowany i obiektowy kod w php10 biggrin.gif (hehe):

  1. <?php
  2. header ('Content-type: image/png');
  3. header ('Expires: '.gmdate ('r', 0));
  4. header ('Last-Modified: '.gmdate ('r'));
  5. header ('Cache-Control: no-store, no-cache, must-revalidate');
  6. header ('Pragma: no-cache');
  7.  
  8. $chars = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'c', 'h', 'j', 'k', 'e', 'd', 'Y');
  9.  
  10. for($i = 0; $i < 4; $i++)
  11. {
  12. $text .= $chars[array_rand($chars)];
  13. }
  14.  
  15. $config = array(
  16. $text, // @array[0] string : token
  17. 7, // @array[1] int : left margin
  18. 0, // @array[2] int : top margin
  19. /* TEXT */
  20. 255, // @array[3] int - 0-255 : C - cyan
  21. 255, // @array[4] int - 0-255 : M - magenta
  22. 255, // @array[5] int - 0-255 : Y - yellow
  23. 3, // @array[6] int : font size
  24. /* BACKGROUND */
  25. 0, // @array[7] int - 0-255 : C - cyan
  26. 0, // @array[8] int - 0-255 : M - magenta
  27. 0, // @array[9] int - 0-255 : Y - yellow
  28. /* IMAGE */
  29. 40, // @array[10] int : image width
  30. 15 // @array[11] int : image height
  31. );
  32.  
  33. $_SESSION['token'] = $text;
  34.  
  35. $image = imagecreatetruecolor($config[10], $config[11]);
  36. $background = imagecolorallocate($image, $config[7], $config[8], $config[9]);
  37.  
  38. imagefill($image, 0, 0, $background);
  39.  
  40. $textcolor = imagecolorallocate($image, $config[3], $config[4], $config[5]);
  41. imagestring($image, $config[6], $config[1], $config[2], $config[0], $textcolor);
  42.  
  43. imagepng($image);
  44.  
  45. imagedestroy ($Image);
  46. ?>


a macie, z nudów zrobiłem bo już nie mam nic do roboty... użycie:

  1. <img src="token.php" width="40" height="15">

dodajemy pole formularza typu TEXT o nazwie "token" i sprawdzamy:

  1. <?php
  2.  
  3. if($_POST['token'] == $_SESSION['token'])
  4. {
  5. // respekt... umiesz czytać nawet tongue.gif
  6. }
  7. else
  8. {
  9. // buaaaa... i masz wałek tongue.gif
  10. }
  11. ?>


pamiętajmy o wystartowaniu sesji, gdyż tak jest przekazywany kod z tokenu

pozdro smile.gif

---EDIT---

no, token jest łatwy do rozbrojenia (czekam na skrypcik rozbrajający go w zamian tongue.gif )

pozostawia wiele do życzenia, jak bedzie mi sie na tyle nudzić że koniec to tongue.gif to napisze jakąś klase do tego z zaawansowanym tokenem i wczytaniu textur i ładowaniu czcionek (no i jak dostane lepsze GD na serwie sad.gif )

to ma na celu pokazać początkującym jak takie coś się robi i na jakiej zasadzie działa smile.gif
lenczewski
dzięki, przyda się.
bim2
Popraw NOTIC smile.gif
  1. Obrazek "http://qmple.pl/templates/token.php" nie może zostać wyświetlony, ponieważ zawiera błędy.

  1. <br />
  2. <b>Notice</b>: Undefined variable: text in <b>/var/www/users/qmple/public_html/templates/token.php</b> on line <b>13</b><br />
  3. PNG
  4. 
Landon
proponuje zmienić
header ('Content-type: image/png');
na
header ('Content-type: image/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.