Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Bilbioteka GD?, Tworzenie obrazka z php
bemol
post
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Jest to przykładowy plik z funkcją ImageTTFtext:
  1. <?php
  2. // Set the content-type
  3. header("Content-type: image/png");
  4.  
  5. // Create the image
  6. $im = imagecreate(400, 30);
  7.  
  8. // Create some colors
  9. $white = imagecolorallocate($im, 255, 255, 255);
  10. $grey = imagecolorallocate($im, 128, 128, 128);
  11. $black = imagecolorallocate($im, 0, 0, 0);
  12.  
  13. // The text to draw
  14. $text = 'Testing...';
  15. // Replace path by your own font path
  16. $font = 'arial.ttf';
  17.  
  18. // Add some shadow to the text
  19. imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
  20.  
  21. // Add the text
  22. imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
  23.  
  24. // Using imagepng() results in clearer text compared with imagejpeg()
  25. imagepng($im);
  26. imagedestroy($im);
  27. ?>


Jego wyniki widać pod adresem: http://ciekawe.2lokrosno.strefa.pl/obrazek.php

Dlaczego nie wyświetla tekstu na obrazku? Z tego co wiem, serwer obsługuje Biblioteke GD, więc co jest nie tak?
Co w takim razie mogę zrobić? Chcę zabezpieczyć przed spamem pewnien formularz, więc chcę umieścić kod do przepisania.
Proszę o pomoc, będę bardzo wdzięczny, bo już od około tygodnia męczę się nad tą "drobnostką".
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piotrekkr
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


dobra chodzi o to ze zapytanie do bazy danych nie zwraca zadnego wyniku. Mozesz to sprawdzic przez var_dump($row) powinno wypisac elementy tablicy. Twoje zapytanie zwraca null i przypisuje go do $row a imagestriong jesli wstawisz null w miejsce parametru z textem to nic ci nie wpisze. Zmien zapytanie. Napisz jakie bylo do tej pory to pomysli sie nad zmiana.

zainteresuj sie tym skryptem ladnie dziala mi wszystko i ladne robi captche:
  1. <?php
  2. putenv('GDFONTPATH=' . realpath('.'));
  3. $fontDir  = 'fonts/'; // katalog z czcionkami 
  4. $fontFiles = array('verdana.ttf', 'impact.ttf', 'comic.ttf', 'arial.ttf'); // nazwy u�ywanych plik�w czcionek
  5. $imgType  = 'png'; // format wyswietlanej grafiki (png, gif, jpeg) 
  6. $length = 6; // d�ugos� losowego ci�gu 
  7.  
  8. $backColor = '#ffffff'; // kolor t�a grafiki 
  9. $fontColor = '#2a2a2a'; // kolor czcionki 
  10. $dotsColor = '#c0c0c0'; // kolor plam ;-) 
  11.  
  12. $token = substr(md5(uniqid(time())), 0 - $length); 
  13.  
  14. for($i = 0; $i < strlen($token); $i++)
  15. { 
  16.  if(($token{$i} >= 'a' and $token{$i} <= 'z') and (rand(0, 10) > 5))
  17.  {
  18. $token{$i} = strtoupper($token{$i});
  19.  }
  20. }
  21.  
  22. $_SESSION['token'] = $token;
  23.  
  24. function make_color($img, $color)
  25. {
  26.  if(is_resource($img) and preg_match('/^#[a-f0-9]{6}$/i', $color))
  27.  {
  28. $color = substr($color, 1);
  29. $rgb = array();
  30. for($i = 0; $i < 6; $i += 2) 
  31. {
  32.  $rgb[] = (int)hexdec($color{$i}.$color{$i + 1});
  33. }
  34.  
  35. return imagecolorallocate($img, $rgb[0], $rgb[1], $rgb[2]);
  36.  }
  37.  else
  38.  {
  39. return 0; 
  40.  }
  41. } 
  42.  
  43. header('Content-type: image/'.$imgType); 
  44.  
  45. $width = strlen($token) * 15 + 10; 
  46. $height = 25; 
  47.  
  48. $img = imagecreate($width, $height); 
  49.  
  50. $back = make_color($img, $backColor); 
  51. $font = make_color($img, $fontColor); 
  52. $dots = make_color($img, $dotsColor); 
  53.  
  54. $pts = array(); 
  55.  
  56. for($i = 0; $i < round($width / 1.5); $i++) 
  57. { 
  58.  $x = rand(0, $width); 
  59.  $y = rand(0, $height); 
  60.  
  61.  if(!in_array($x.'_'.$y, $pts)) 
  62.  { 
  63. imageellipse($img, $x, $y, rand(2, 7), rand(3, 6), $dots); 
  64. $pts[] = $x.'_'.$y; 
  65.  } 
  66.  else 
  67.  { 
  68. $i--; 
  69.  } 
  70. } 
  71.  
  72. for($i = 0; $i < strlen($token); $i++) 
  73. { 
  74.  imagettftext($img, rand(14, 16), rand(-10, 10), rand(3, 5) + $i * 15, 20 + rand(-3, 3), $font, $fontDir.'/'.$fontFiles[rand(0, count($fontFiles) - 1)], $token{$i}); 
  75. } 
  76.  
  77. switch($imgType) 
  78. { 
  79.  case 'jpeg': 
  80. imagejpeg($img); 
  81. break; 
  82.  case 'gif': 
  83. imagegif($img); 
  84. break; 
  85.  default: 
  86. imagepng($img); 
  87. break; 
  88. } 
  89.  
  90. imagedestroy($img);
  91. ?>


to wstaw w obrazek.php a przy dodawaniu ciekawostki sprawdzaj czy $_SESSION['token'] == $_POST['kod_wpisany_w_formularzu'] jak tak to dodawaj jak nie to wroc do formularza. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

aha i dodaj folder fonts/ i w ten folder wrzuc czcionki wypisane w $fontFiles = array('verdana.ttf', 'impact.ttf', 'comic.ttf', 'arial.ttf') albo jakies inne tylko musisz zmienic wtedy w tej tablicy nazwy plikow

Ten post edytował piotrekkr 2.09.2007, 18:16:33
Go to the top of the page
+Quote Post

Posty w temacie
- bemol   [php] Bilbioteka GD?   1.09.2007, 20:29:52
- - piotrekkr   Cytat// Replace path by your own font path $f...   1.09.2007, 20:32:57
- - bemol   tak, tzn zmieniłem na tahoma.ttf i wrzuciłem ją na...   1.09.2007, 20:35:02
- - piotrekkr   nigdzie nie includujesz tego kodu?? moze sproboj...   1.09.2007, 20:42:41
- - bemol   niestety nic się nie zmieniło :/ mnie już trafia j...   1.09.2007, 20:45:01
- - piotrekkr   moze zmien : [PHP] pobierz, plaintext <?php$im ...   1.09.2007, 20:47:00
- - bemol   jest zmiana! obrazek zrobił się ciemny (#00000...   1.09.2007, 20:52:30
- - piotrekkr   Ciasteczka nic nie dadza. Sproboj : [PHP] pobierz,...   1.09.2007, 21:05:24
- - bemol   Cytat(piotrekkr @ 1.09.2007, 21:05:24...   1.09.2007, 21:09:20
- - piotrekkr   plik z czcionka arialbd.ttf napewno jest na ftp w ...   1.09.2007, 21:13:19
- - bemol   Przykład brałem stąd: http://www.phpmanual.yej.pl/...   1.09.2007, 21:21:03
- - piotrekkr   Spoko tylko troche brzydka ta czcionka standardowa...   1.09.2007, 21:24:53
- - bemol   Witam ponownie, mam kolejny problem A mianowicie ...   2.09.2007, 11:58:54
- - piotrekkr   CytatA mianowicie w pliku obraz.php nie można umie...   2.09.2007, 12:23:03
- - bemol   gdy na początku pliku obrazek.php umieszczę linijk...   2.09.2007, 12:33:20
- - piotrekkr   W takim wypadku w connection.php musi byc jakis zn...   2.09.2007, 12:35:20
- - bemol   [PHP] pobierz, plaintext <?phpDEFINE(...   2.09.2007, 14:39:41
- - piotrekkr   a wez po tym [PHP] pobierz, plaintext <?php$ko...   2.09.2007, 14:58:26
- - bemol   jak wstawie: [PHP] pobierz, plaintext <?phpvar_...   2.09.2007, 15:18:34
- - piotrekkr   Wez zakomentuj header(); i sprawdz co wyswietla va...   2.09.2007, 17:46:59
- - bemol   tak, wyświetla NULL PS. może przejdziemy na GG? ...   2.09.2007, 17:53:27
- - piotrekkr   dobra chodzi o to ze zapytanie do bazy danych nie ...   2.09.2007, 18:09:07
|- - bemol   Cytat(piotrekkr @ 2.09.2007, 19:09:07...   2.09.2007, 19:57:46
- - piotrekkr   Jakie bledy zwraca ten skrypt co ci podalem bo mi ...   3.09.2007, 12:21:28


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: 7.10.2025 - 23:56