Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+GD]Token glupi problem
Forum PHP.pl > Forum > Przedszkole
marcio
Witam robie sobie 2 token mam juz jeden i dziala za pomoca imagestring() teraz chce uzyc imagettftext() ale cos nie dziala mam taki kod:
  1. <?php
  2.  
  3. $losuj = substr(md5(time()), 0, 6);
  4. $_SESSION['token_pass'] = $losuj;
  5. $ilosc = strlen($_SESSION['token_pass']);
  6.  
  7. $img=imagecreate(150,40);
  8. $white=imagecolorallocate($img,225,225,225); 
  9. $black=imagecolorallocate($img,0,0,0);
  10. imagefill($img,0,0,$white);
  11.  
  12.  
  13.  
  14. for($i = 0; $i < $ilosc; $i++) {
  15.  
  16.  
  17. imageline($img,0,rand(0, 25),200,rand(0, 25),$black); 
  18. imageline($img,0,rand(25, 50),200,rand(25, 50),$black); 
  19. imagettftext($img,rand(25, 40),rand(-30, 30),(($nr*30)+15),rand(30, 40),$black,'./font/ORIENTLY.TTF',$_SESSION['token_pass'][$i]);
  20. }
  21. header("Content-type: image/gif");
  22. imagegif($img);
  23. imagedestroy($img); 
  24. ?>

Wywala mi taki blad:
Cytat
Fatal error: Call to undefined function imagettftext() in /old/ad3s1f/virtual/szu.pl/m/marcio/www/url/token1.php on line 20

Odziwo 5 min temu blad byl inny ze obrazek zawiera bledy wiec co jest zle gdy zakomentuje linie z imagettftext() to jest obrazek a czionke dobrze laduje
legorek
Ten błąd oznacza, że masz kiepski hosting. Po prostu nie obsługuje tej funkcji lub jest zablokowana.

Dla pewności sprawdź co ci powie:

  1. <?php
  2. var_dump(function_exists('imagettftext'));
  3. ?>
marcio
Faktycznie daje smile.gif
Kod
bool(false)

Hosting jest fajny nie narzekam akurat to mnie nie interesuje smile.gif
help_mee
ja nie wiem po co wy się tak męczycie...

do prostego tokena wystarczy komplet grafik cyfr i liter, SESJA i rand ... to wszystko... nie wiem po co zamulać serwer wczytywaniem bibliotek itp
marcio
A tam takie obciazenie to wiesz...
  1. <?php
  2.  
  3. $losuj = substr(md5(time()), 0, 6);
  4. $_SESSION['token_pass'] = $losuj;
  5. $ilosc = strlen($_SESSION['token_pass']);
  6.  
  7. $img=imagecreate(150,40);
  8. $white=imagecolorallocate($img,225,225,225); 
  9. $black=imagecolorallocate($img,0,0,0);
  10. imagefill($img,0,0,$white);
  11.  
  12. $x = 40;
  13.  
  14. for($i = 0; $i < $ilosc; $i++) {
  15.  
  16.  
  17. imageline($img,0,rand(0, 25),200,rand(0, 25),$black); 
  18. imageline($img,0,rand(25, 50),200,rand(25, 50),$black); 
  19. imagestring($img, 5, $x,rand(5,10), $_SESSION['token_pass'][$i], imagecolorallocate($img, rand(150, 255), rand(150, 255), rand(150, 255)));
  20. $x += 10;
  21. }
  22. header("Content-type: image/gif");
  23. imagegif($img);
  24. imagedestroy($img); 
  25.  
  26.  
  27. ?>

A macie pomysl jak zrobic zeby powieksz bardziej text bo jest malutki imagestring daje mu 5 na text ale to jest malo hmm. moze jakos inaczej??
legorek
imagestring, ma tylko pięć rodzajów czcionek (5 to największy).

Jeśli chcesz się trzymać tej funkcji to możesz:
1) Stworzyć własną czcionkę, zobacz imageloadfont" title="Zobacz w manualu PHP" target="_manual + komentarze
2) Przesamplować obrazek na większy. Oczywiście będzie rozmyty i trochę brzydki ale w przypadku CAPTCHA to chyba plus smile.gif
marcio
  1. <?php
  2.  
  3. $losuj = substr(md5(time()), 0, 6);
  4. $_SESSION['token_pass'] = $losuj;
  5. $ilosc = strlen($_SESSION['token_pass']);
  6.  
  7. $img=imagecreate(150,30);
  8. $white=imagecolorallocate($img,225,225,225); 
  9. $black=imagecolorallocate($img,180,180,180);
  10. imagefill($img,0,0,$white);
  11.  
  12. $x = 20;
  13.  
  14. for($i = 0; $i < $ilosc; $i++) {
  15.  
  16.  
  17. imageline($img,0,rand(0, 50),150,rand(0, 100),$black); 
  18. //imageline($img,0,rand(15, 30),150,rand(25, 50),$black); 
  19. imagestring($img, 5, $x,rand(5,10), $_SESSION['token_pass'][$i], imagecolorallocate($img, rand(0, 200), rand(0, 200), rand(0, 200)));
  20. $x += 20;
  21. }
  22. header("Content-type: image/gif");
  23. imagegif($img);
  24. imagedestroy($img); 
  25.  
  26.  
  27. ?>

Zaduzo bawienia sie zrobilem tai i tylko jest wszystko good ale dzieki za pomoc smile.gif
Spykaj
legorek: A jest jakaś inna funkcja, która by pozwalała wybrać rodzaj czcionki, wielkość, pogrubienie, podkreślenie, kursywę questionmark.gif Dlaczego nikt nigdy takiej nie napisał sleep.gif
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.