Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Generator banalnych tokenów, może się przyda :)
Athlan
post 4.08.2006, 12:55:38
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował Athlan 4.08.2006, 12:59:48


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
lenczewski
post 15.08.2006, 21:42:38
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 1
Dołączył: 31.08.2005

Ostrzeżenie: (0%)
-----


dzięki, przyda się.


--------------------
Go to the top of the page
+Quote Post
bim2
post 16.08.2006, 16:56:43
Post #3





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


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. 


--------------------
Go to the top of the page
+Quote Post
Landon
post 9.07.2007, 20:21:17
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 3
Dołączył: 21.04.2007
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


proponuje zmienić
header ('Content-type: image/png');
na
header ('Content-type: image/gif');


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 09:22