Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zniekształcone znaki
Forum PHP.pl > Forum > PHP
moto0095
Witam.
Zacząłem robić nową stronkę i doszedłem do zabezpieczenia formularza, czyli zrobiłem captcha.
I teraz mam pytanko czy zna ktoś może jakąś funkcję która zniekształca znaki bo ja szukam, szukam i nic nie mogę znaleźć questionmark.gif

Chodzi mi dokładnie o taki efekt: http://code.google.com/p/cool-php-captcha/
magiczny_piesek
http://php.net/manual/en/book.imagick.php

Bibliteka z ogromna liczbą metod, coś powinno się udac.
moto0095
Fajna sprawa jak widzę, ale ja bym wolał bez dodatkowych bibliotek smile.gif

Chciałbym uzyskać dokładnie coś takiego:

Zna ktoś skrypt aby uzyskać taki efekt questionmark.gif
Pawel_W
Cytat(moto0095 @ 21.09.2010, 22:07:25 ) *
Fajna sprawa jak widzę, ale ja bym wolał bez dodatkowych bibliotek smile.gif

Chciałbym uzyskać dokładnie coś takiego:

Zna ktoś skrypt aby uzyskać taki efekt questionmark.gif

może kolega nie wie, ale w php da się operować na obrazkach tylko bibliotekami (gd to też biblioteka...)

najprościej Ci będzie napisać własny, strukturalny kod, który wygeneruje coś takiego, bez użycia ogólnodostępnych narzędzi

[ironia /off]
moto0095
Cytat(Pawel_W @ 21.09.2010, 22:37:18 ) *
może kolega nie wie, ale w php da się operować na obrazkach tylko bibliotekami (gd to też biblioteka...)

najprościej Ci będzie napisać własny, strukturalny kod, który wygeneruje coś takiego, bez użycia ogólnodostępnych narzędzi

[ironia /off]

Wiem , że w php da się operować na obrazkach tylko bibliotekami. Po prostu źle się wyraziłem. Chciałbym uzyskać taki efekt bez dodatkowych bibliotek. GD mam już zainstalowaną. smile.gif

A tak odbiegając od tematu to czy taka CAPTCHA jest bezpieczna (chodzi w niej o podanie wyniku działania)questionmark.gif :
  1. <?php
  2.  
  3. $captcha_w = 177;
  4. $captcha_h = 31;
  5. $min_font_size = 16;
  6. $max_font_size = 19;
  7. $angle = 20;
  8. $bg_size = 8.1;
  9. $font_path = 'courbd.ttf';
  10. $operators = array('+','-','*');
  11. $first_num = rand(1,5);
  12. $second_num = rand(6,11);
  13.  
  14. shuffle($operators);
  15. $expression = $second_num.$operators[0].$first_num;
  16.  
  17. eval("\$session_var=".$second_num.$operators[0].$first_num.";");
  18.  
  19. $_SESSION['security_number'] = $session_var;
  20.  
  21. $img = imagecreate( $captcha_w, $captcha_h );
  22.  
  23. $black = imagecolorallocate($img,0,0,0);
  24. $white = imagecolorallocate($img,255,255,255);
  25. $grey = imagecolorallocate($img,215,215,215);
  26. $lcolor1 = imagecolorallocate($img, rand(0, 190), rand(0, 190), rand(0, 190));
  27. $lcolor2 = imagecolorallocate($img, rand(0, 190), rand(0, 190), rand(0, 190));
  28. $lcolor3 = imagecolorallocate($img, rand(0, 190), rand(0, 190), rand(0, 190));
  29.  
  30. imagefill($img, 0, 0, $white);
  31.  
  32. for ($t = $bg_size; $t<$captcha_w; $t+=$bg_size){
  33. imageline($img, $t, 0, $t, $captcha_h, $grey);
  34. }
  35.  
  36. for ($t = $bg_size; $t<$captcha_h; $t+=$bg_size){
  37. imageline($img, 0, $t, $captcha_w, $t, $grey);
  38. }
  39.  
  40. $item_space = $captcha_w/3;
  41.  
  42. imagettftext(
  43. $img,
  44. $min_font_size,
  45. $max_font_size
  46. ),
  47. rand( -$angle , $angle ),
  48. rand( 10, $item_space-28 ),
  49. rand( 25, $captcha_h-10 ),
  50. $lcolor1,
  51. $font_path,
  52. $second_num);
  53.  
  54. imagettftext(
  55. $img,
  56. 20,
  57. rand( -$angle, $angle ),
  58. rand( $item_space, 2*$item_space-28 ),
  59. rand( 25, $captcha_h-5 ),
  60. $lcolor2,
  61. $font_path,
  62. $operators[0]);
  63.  
  64. imagettftext(
  65. $img,
  66. $min_font_size,
  67. $max_font_size
  68. ),
  69. rand( -$angle, $angle ),
  70. rand( 2*$item_space, 3*$item_space-40),
  71. rand( 25, $captcha_h-10 ),
  72. $lcolor3,
  73. $font_path,
  74. $first_num);
  75.  
  76. header("Content-type:image/png");
  77. header("Content-Disposition:inline ; filename=secure.png");
  78. imagepng($img);
  79. ?>


questionmark.gif
kiler129
Sry że się tak wyrażę ale nienawidzę drapania się przez ścianę. Po co odkrywać koło na nowo a następnie po każdym uderzeniu (czytaj ataku) wygładzać (czytaj udziwniać kod do generowania).

http://www.google.com/recaptcha i tyle na temat ;]

Napisałeś też, że chciałbyś efekt jak tutaj: http://code.google.com/p/cool-php-captcha/ więc dlaczego nie pobierzesz klasy i nie wygenerujesz jak w przykładzie pokazano?
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.