Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dlaczego captcha wyświetla się na jednym serwerze, a na innym nie ?
agnes
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.12.2009

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


Cześć !

Mam problem ze skryptem obrazku captcha. Obrazek wraz z ciągiem znaków do przepisania nie wyświetla się na 2 serwerach – pojawiają się takie krzaki (fragment), kiedy kliknę pokaż obrazek:

˙Ř˙ŕ� JFIF� �� � ��˙ţ�>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ˙Ű�C�

Na innym serwerze – tzn. yoyo obrazek captcha z ciągiem znaków wyświetla się poprawnie.

Jaka może być tego przyczyna ? W jaki sposób mogę to naprawić ? Dziękuję z góry za wszelkie informacje i wskazówki.

Oto kod raz działającej, a raz nie captcha:

  1. <?php
  2.  
  3. //Zapraszam do dystrybucji i wykorzystania jak chcesz
  4. //Wystarczy pozostawić poniższy nagłówek i komentarze nienaruszone
  5. // GENERATOR TOKENA - CAPTCHA
  6. //Email: int-24@wp.pl
  7. //Web: www.int24.unl.pl
  8.  
  9. // wysłanie nagłówków do przeglądarki
  10. header ("content-type: image/jpg");
  11.  
  12. // generowanie liczb losowych do wykorzystania w naszym szyfrowaniu
  13. $enc_num = rand(0, 9999); // numer ten jest szyfrowany
  14. $key_num = rand(0, 24); // używany ciąg znaków wykorzystany na obrazku
  15.  
  16. // użyj losowy ciąg cyfr i liter przy użyciu MD5
  17. // ilość wyświetlanych znaków w naszym przypadku 5
  18. $hash_string = substr(md5($enc_num), $key_num, 5);
  19. $hash_md5 = md5($hash_string);
  20.  
  21. // przypisanie do sesji
  22. $_SESSION['captcha'] = $hash_md5;
  23.  
  24. // tworzą zestaw obrazów jako tło pod tokenem
  25. $bgs = array("back1.jpg", "back2.jpg", "back3.jpg");
  26.  
  27. // wybiera obraz tła przy użyciu funkcji podręcznej array_rand
  28. $background = array_rand($bgs, 1);
  29.  
  30. // ustawia jako tło losowo wybrany gif
  31. $img_handle = imagecreatefromjpeg($bgs[$background]);
  32.  
  33. // kolor czcionki, tekstu
  34. $text_colour = imagecolorallocate($img_handle, 0, 0, 0);
  35.  
  36. // wielkosc czcionki, tekstu
  37. $font_size = 5;
  38.  
  39. // pobierz wymiary poziome i pionowe obrazu tla
  40. $size_array = getimagesize($bgs[$background]);
  41. $img_w = $size_array[0];
  42. $img_h = $size_array[1];
  43.  
  44. // pozycja pozioma
  45. $horiz = round(($img_w/2)-((strlen($hash_string)*imagefontwidth(5))/2), 1);
  46.  
  47. // pozycja pionowa
  48. $vert = round(($img_h/2)-(imagefontheight($font_size)/2));
  49.  
  50. // umieść wygenerowany tekst na tle
  51. imagestring($img_handle, $font_size, $horiz, $vert, $hash_string, $text_colour);
  52.  
  53. // tworzenie obrazu
  54. imagejpeg($img_handle);
  55.  
  56. // usuwanie obrazu
  57. imagedestroy($img_handle);
  58.  
  59. ?>


Ten post edytował agnes 13.12.2009, 15:53:35
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.12.2025 - 12:30