Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Token
moto0095
post 16.04.2010, 21:48:00
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Witam znalazłem ostatnio i przerobiłem pewien token.
Tylko nie wiem jak dodać do niego jakieś plamki, kreski itp. w tle.
oto kod:
  1. <?php
  2. session_start(); //rozpoczecie sesji
  3. header ('Content-type: image/png'); //wyslanie naglowkow do przegladarki
  4. header ('Expires: '.gmdate ('r', 0));
  5. header ('Last-Modified: '.gmdate ('r'));
  6. header ('Cache-Control: no-store, no-cache, must-revalidate');
  7. header ('Pragma: no-cache');
  8.  
  9. $chars = array(1,2,3,4,5,6,7,8,9,'e','r','t','u','i','p','a','g','h','j','z','c','b','n','m'); //Lista znakow
  10.  
  11. for($i = 0; $i < 6; $i++) //Losowanie znakow
  12. {
  13. $text .= $chars[array_rand($chars)];
  14. }
  15.  
  16. $_SESSION['token'] = $text;
  17. //Tworzenie obrazka
  18. $image = imagecreatetruecolor(100, 32);
  19. $background = imagecolorallocate($image, 0, 0, 0);
  20.  
  21. imagefill($image, 0, 0, $background);
  22.  
  23. $textcolor = imagecolorallocate($image, 255, 255, 255);
  24. imagestring($image, 10, 25, 8, $text, $textcolor);
  25.  
  26. imagepng($image);
  27.  
  28. imagedestroy ($Image);
  29. ?>
Go to the top of the page
+Quote Post
Wicepsik
post 16.04.2010, 21:53:03
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Poczytaj o bibliotece GD


--------------------
Go to the top of the page
+Quote Post
moto0095
post 16.04.2010, 22:02:46
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Czytałem.
Ale poprostu coś mi nie wychodzi.sad.gif
Pomocy exclamation.gif
Go to the top of the page
+Quote Post
Wicepsik
post 16.04.2010, 22:10:50
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


imageline


--------------------
Go to the top of the page
+Quote Post
moto0095
post 17.04.2010, 10:42:59
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Wiem że to ta funkcja tylko nie wiem jak ją podpiąć.

Okey poradziłem sobie jakoś.
Oto kod może się komuś przyda smile.gif
  1. <?
  2. $pool = '0123456789abcdefghijklmnopqrstuvwxyz';
  3. $img_width = 120;
  4. $img_height = 30;
  5.  
  6. $str = '';
  7. for ($i = 0; $i < 7; $i++){
  8. $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
  9. }
  10.  
  11. $string = $str;
  12. $_SESSION['captcha'] = $string;
  13.  
  14. $im = imagecreate($img_width, $img_height);
  15.  
  16. $color1 = rand(0,150);
  17. $color2 = rand(0,150);
  18. $color3 = rand(0,150);
  19.  
  20. $colorbg1 = rand(0,150);
  21. $colorbg2 = rand(0,150);
  22. $colorbg3 = rand(0,150);
  23.  
  24. $colorfont1 = rand(200,255);
  25. $colorfont2 = rand(200,255);
  26. $colorfont3 = rand(200,255);
  27.  
  28. $bg_color = imagecolorallocate($im,$colorbg1,$colorbg2,$colorbg3);
  29. $font_color = imagecolorallocate($im,$colorfont1,$colorfont2,$colorfont3);
  30. $grid_color = imagecolorallocate($im,$color1,$color2,$color3);
  31. $border_color = imagecolorallocate ($im, 174, 174, 174);
  32.  
  33. imagefill($im,1,1,$bg_color);
  34.  
  35.  
  36. ImageLine($im,90,0,90,30,$grid_color); //1
  37. ImageLine($im,10,0,10,30,$grid_color); //2
  38. ImageLine($im,20,0,20,30,$grid_color); //1
  39. ImageLine($im,30,0,30,30,$grid_color); //1
  40. ImageLine($im,40,0,40,30,$grid_color); //1
  41. ImageLine($im,50,0,50,30,$grid_color); //1
  42. ImageLine($im,60,0,60,30,$grid_color); //1
  43. ImageLine($im,70,0,70,30,$grid_color); //1
  44. ImageLine($im,80,0,80,30,$grid_color); //1
  45. ImageLine($im,90,0,90,30,$grid_color); //2
  46. ImageLine($im,100,0,100,30,$grid_color); //1
  47. ImageLine($im,110,0,110,30,$grid_color); //1
  48. ImageLine($im,120,0,120,30,$grid_color); //1
  49.  
  50. ImageLine($im,0,0,-80,30,$grid_color); //1
  51. ImageLine($im,10,0,-70,30,$grid_color); //1
  52. ImageLine($im,20,0,-60,30,$grid_color); //1
  53. ImageLine($im,30,0,-50,30,$grid_color); //1
  54. ImageLine($im,40,0,-40,30,$grid_color); //1
  55. ImageLine($im,50,0,-30,30,$grid_color); //1
  56. ImageLine($im,60,0,-20,30,$grid_color); //1
  57. ImageLine($im,70,0,-10,30,$grid_color); //1
  58. ImageLine($im,80,0,0,30,$grid_color); //1
  59. ImageLine($im,90,0,10,30,$grid_color); //1
  60. ImageLine($im,100,0,20,30,$grid_color); //1
  61. ImageLine($im,110,0,30,30,$grid_color); //1
  62. ImageLine($im,120,0,40,30,$grid_color); //1
  63. ImageLine($im,130,0,50,30,$grid_color); //1
  64. ImageLine($im,140,0,60,30,$grid_color); //1
  65. ImageLine($im,150,0,70,30,$grid_color); //1
  66. ImageLine($im,160,0,80,30,$grid_color); //1
  67. ImageLine($im,170,0,90,30,$grid_color); //1
  68. ImageLine($im,180,0,100,30,$grid_color); //1
  69. ImageLine($im,190,0,110,30,$grid_color); //1
  70. ImageLine($im,200,0,120,30,$grid_color); //1
  71.  
  72. ImageLine($im,0,5,120,5,$grid_color); //1
  73. ImageLine($im,0,10,120,10,$grid_color); //1
  74. ImageLine($im,0,15,120,15,$grid_color); //1
  75. ImageLine($im,0,20,120,20,$grid_color); //1
  76. ImageLine($im,0,25,120,25,$grid_color); //1
  77.  
  78.  
  79. $x = rand(7, $img_width/(7/2));
  80.  
  81. imagerectangle($im, 0, 0, $img_width-1, $img_height-1, $border_color);
  82.  
  83. for($a=0; $a < 7; $a++){
  84.  
  85. imagestring($im, 5, $x, rand(8 , $img_height/7), substr($string, $a, 1), $font_color);
  86. $x += (5*2); #odstęp
  87.  
  88. }
  89.  
  90. header("Content-type: image/gif");
  91. imagegif($im);
  92. imagedestroy($im);
  93.  
  94. ?>


Aby nie zaczynać nowego tematu to zapytam się tutaj.
Jak zrobić odświeżanie tego tokena po kliknięciu na przycisk np: "Inny", ale bez przeładowania strony (wiem że można to zrobić w ajaxie tylko ja nie znam go w ogóle ) questionmark.gifquestionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
marcio
post 17.04.2010, 11:29:34
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


O petli for/while to slyszales?Bo te 20-30 linijek koduj mozna zastapic 2-3 :]

Cytat
Jak zrobić odświeżanie tego tokena po kliknięciu na przycisk np: "Inny", ale bez przeładowania strony (wiem że można to zrobić w ajaxie tylko ja nie znam go w ogóle )

Kod
<input type="button" onClick="java script: location.reload();" value="Zmien">

Chyba tak to sie robilo ale reki nie dam sobie uciac biggrin.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
moto0095
post 17.04.2010, 18:43:52
Post #7





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


No coś nie za bardzo to działa sad.gif. Jakieś inne pomysły questionmark.gif

Chodzi mi o coś takiego jak tutaj: http://ilustratum.pl/scripts/skrypty/token_ajax/index.php.
Wie ktoś ja to zrobić questionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
tehaha
post 17.04.2010, 18:56:34
Post #8





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


chodzi Ci cały czas o przeładowanie tak? a spróbuj
  1. <input type="button" onClick="java script: location.reload(true);" value="Przeładuj">


Ten post edytował tehaha 17.04.2010, 18:56:55
Go to the top of the page
+Quote Post
moto0095
post 17.04.2010, 19:38:11
Post #9





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Nie wiem to też nie działa. sad.gif
A może ja coś ja żle robie questionmark.gif
Jak to powinno wyglądać questionmark.gif
Go to the top of the page
+Quote Post
tehaha
post 17.04.2010, 19:49:36
Post #10





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


a spróbuj w onclick usunąć tą spację między java script , bo ona się sama dodaje po wrzuceniu kodu do bbcode
Go to the top of the page
+Quote Post
moto0095
post 17.04.2010, 20:01:05
Post #11





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Działa smile.gif
Tylko to przeładowywuje cłą stronę a nie sam obrazek czy tam div sad.gif
A jak zrobić aby tylko obrazek/div preładowywało questionmark.gif
Bo szukam w google ale jakoś nic mi nie działa sad.gif

Ten post edytował moto0095 17.04.2010, 20:01:28
Go to the top of the page
+Quote Post
tehaha
post 17.04.2010, 20:03:37
Post #12





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


możesz to zrobić przy pomocy biblioteki jQuery i funkcji load, wsadzisz ten obrazek do diva i wtedy załadujesz ponownie tylko wnętrze diva
Go to the top of the page
+Quote Post
crumb
post 18.04.2010, 16:25:36
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 2
Dołączył: 26.07.2003
Skąd: Poznań

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


A dokładniej coś takiego:

div z tokenem i przycisk reload:
  1. <div id="token">TUTAJ OBRAZEK Z TOKENEM</div><a id="reload">inny</a>


Js odpowiedzialny za przeładowanie:
  1. <script type="text/javascript">
  2. $(document).ready(
  3. function()
  4. {
  5. $("a#reload").click( function() { $("div#token").load("ADRES_PRZEŁADOWANIA"); });
  6. });

Oczywiście nie zapomnij załadować biblioteki jQuery (znajdziesz w googlach). Jak czegoś nie zapomniałem to powinno działać winksmiley.jpg.
Go to the top of the page
+Quote Post
Crozin
post 18.04.2010, 16:37:22
Post #14





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Skoro:
1) Nie znasz podstaw żadnej z dostępnych bibliotek graficznych dostępnych dla PHP
2) Nie znasz JavaScriptu
3) To co udało Ci się metodą Copy/Paste zrobić jest raczej słabym zabezpieczeniem

To skorzystaj z gotowych rozwiązań typu reCAPTCHA
Go to the top of the page
+Quote Post
moto0095
post 18.04.2010, 16:49:49
Post #15





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


1) Znam podstawy GD
2) JS rzadko używam
3) Ale działa

Cytat(Crozin @ 18.04.2010, 17:37:22 ) *
To skorzystaj z gotowych rozwiązań typu reCAPTCHA


Wolę uczyć się na błędach.
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: 25.06.2025 - 13:49