Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]imagettftext
Forum PHP.pl > Forum > Przedszkole
onelife
Witam,a więc teraz robie coś innego i potrzebuje pomocy. Mam coś takiego




  1. <?
  2.  
  3.  
  4.  
  5.  
  6. ini_set('display_errors',1);
  7. error_reporting('E_ALL');
  8.  
  9.  
  10. $image = imagecreatefrompng("images/obrazek.png");
  11. $colorobr = ImageColorAllocate($image, 0, 0, 0);
  12. $color = ImageColorAllocate($image, 255,255,255);
  13. $color2 = ImageColorAllocate($image, 30, 200, 30);
  14.  
  15. // połączenie z mysql
  16. ******tutaj laczenie z baza ********
  17.  
  18. $nick = $_SESSION['nick'];
  19. $wynik = mysql_query("SELECT * FROM `statystyki` WHERE `nick`='$nick'");
  20. while ($dane = mysql_fetch_assoc($wynik)) {
  21.  
  22. imagettftext($image, 14, 0, 19, 24, $colorobr, "text.ttf", .$dane['nick'].);
  23. imagettftext($image, 14, 0, 21, 24, $colorobr, "text.ttf", .$dane['nick'].);
  24. imagettftext($image, 14, 0, 20, 23, $colorobr, "text.ttf", .$dane['nick'].);
  25. imagettftext($image, 14, 0, 20, 25, $colorobr, "text.ttf", .$dane['nick'].);
  26. imagettftext($image, 14, 0, 20, 24, $color, "text.ttf", .$dane['nick'].);
  27.  
  28.  
  29.  
  30. }
  31.  
  32.  
  33. imagealphablending($image, false);
  34. imagesavealpha($image, true);
  35. imagepng($image);
  36. ImageDestroy($image);
  37. ?>



I w pliku panel.php dodałem sobie


  1. <?php
  2. $img = "http://mojastrona/generator.php?nick=$nick";
  3. echo "<img src=\"{$img}\" align=\"center\"/><br />";
  4. echo "bbCode: <input style=\"width: 300px;\" value=\"\" /><br />Link: <input style=\"width: 300px;\" value=\"{$img}\" />";
  5. ?>



I obrazek mi się nie wyświetla,błąd żaden się nie pokazuje.
_Borys_
Nie pokazuje obrazka ponieważ skrypt generowania obrazka wywala błędy a ty tego nie widzisz.
Problemem są kropki
  1. imagettftext($image, 14, 0, 19, 24, $colorobr, "text.ttf", .$dane['nick'].);

Druga sprawa gdy przekazujesz nick w linku to masz go w tablicy $_GET a nie $_SESSION
onelife
Kropki poprawiłem,zmieniłem na


  1. $img = "http://mojastrona.pl/generator.php?nick={$_GET['nick']}";



i błąd

Notice: Undefined index: nick in /var/www/panel.php on line 78 - to jest ta linijka wyżej co podałem
_Borys_
Chodziło mi o to przed pobieraniem wyników z bazy
  1. $nick = $_SESSION['nick'];

Chyba że rzeczywiście masz w sesji nick to wtedy ok, nie widać całego kodu to wtedy takie pytania nasuwają się.
a w linku miałeś raczej dobrze przedtem tylko nie rozumiem po co przekazujesz nick w linku skoro nie odbierasz go potem w skrypcie generującym obrazek.
onelife
A okej,tak nick trzymam w sesji,poprawiłem na sesje tak jak było wcześniej. Ale obrazka nadal nie ma. A co do przekazywania linku z nickiem to chodzi mi własnie o to żeby pokazał się taki obrazek temu userowi z jego nickiem.
_Borys_
Ustaw nick w pierwszym pliku na sztywno tak aby pobrać z bazy przykładowe dane i odpal tylko ten skrypt, powinno się pokazać dużo tekstu i ewentualne błędy na początku albo końcu.
Gość
Tzn? oneeyedsmiley02.png
_Borys_
  1. $nick = $jakis_nick_istniejacy_w bazie; // zamiast $nick = $_SESSION['nick'];

i tylko ten skrypt uruchom, chodzi o to aby pokazało błędy bo napewno jakieś błędy wywala i dlatego nie pokazuje obrazka ponieważ przed pokazaniem obrazka tekst jest wyświetlany którego i tak nie widać w znaczniku <img/> w panel.php
Gość
No okej,poprawiłem na

  1. $nick = $test;
  2. $wynik = mysql_query("SELECT * FROM `statystyki` WHERE `nick`='$nick'");



i odpaliłem stronę


stronawww.pl/generator.php?nick=test i pusta biała strona.
_Borys_
No nie żartuj.
Popraw jeszcze <? na <?php bo może masz wyłączone short tags w php.ini
Gość
Dalej to samo - pusta biała strona.
_Borys_
Dopisz gdzieś
echo 'Działa czy nie działa';
i zobacz czy to wyświetli
Gość
Napis się wyświetla.
fiszol
a w zmiennej $test co jest?
Gość
Nic nie było,zrobiłem tak jak kolega wyrzej radził żeby zamienić
  1. $nick = $_SESSION['nick'];
na
  1. $nick = $jakis_nick_istniejacy_w bazie;
czyli w moim wypadku użytkownik test
fiszol
no to chyba powinno być $nick = 'test', nie $nick = $test?
onelife
Tak też robiłem,pusta biała strona i tylko tekst z echo ' Działa czy nie działa '
fiszol
Wywal to echo bo jedyne co zrobi to rozwali obrazek.
  1. <?php
  2.  
  3. /* tekst ktory ma byc na obrazku */
  4. $text = 'bla bla bla';
  5.  
  6. /* tworzysz obrazek */
  7. $img = imagecreatetruecolor(300, 300);
  8.  
  9. /* troche losowych kolorow, pierwszy posluzy za tlo */
  10. for($i = 0; $i <= 3; ++$i) {
  11. $colors[] = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));
  12. }
  13.  
  14. /* wypelnienie tla */
  15. imagefill($img, 0, 0, $colors[0]);
  16.  
  17. /* nanoszenie tekstu */
  18. for($i = 1; $i <= 3; ++$i) {
  19. imagettftext($img, 18, rand(0,360), rand(30,200), rand(30,200), $colors[$i], 'text.ttf', $text);
  20. }
  21.  
  22. /* naglowki */
  23. header('content-type: image/png');
  24.  
  25. /* wyslanie i zniszczenie obrazka */
  26. imagepng($img);
  27. imagedestroy($img);
  28. ?>
Działa? Działa.

Tak samo jak poprzednio, gubisz gdzieś którąś zmienną. Dorzucaj je więc kolejno aż znajdziesz dziurę i w tedy popraw w swoim ją w swoim kodzie...
Gość
Wkleiłem do pliku generator.php ten kod co mi dałeś i stary usunąłem,wgrałem odpalam stronę i Obrazek nie może zostać wyświetony ponieważ zawiera błędy.
fiszol
Odkomentuj nagłówek i zobacz jakie błędy. Tutaj nikt wróży, jakiś błąd to żaden błąd. Żeby błąd naprawić, trzeba go zidentyfikować. Kod który podałem jest napisany poprawnie.
onelife
Ogarnąłem już to,teraz tylko mam pytanie jak mogę zrobić żeby tekst na obrazku obrysować? smile.gif
onelife
Dałem Ci pomógł. Jeszcze ostatnie pytanie,szukałem ale nie mogłem tego znaleźć. Nie wiem jak to wytłumaczyć,dajmy na to że w bazie użytkownik Adam ma tam "obrazek" i tam jest wpisane 301 i mam obrazki na ftp o nazwie od 1 do 401.png i żeby każdemu ten obrazek wyświetlało w zależności od jego zapisanego w bazie. Takie informacje jak np nick umiem pobierać z bazy ale nie wiem jak to zrobić z pokazaniem obrazka.
fiszol
Masz dajmy na to plik obrazek.php, w nim kod który generuje obrazki, musisz do niego przekazać to 301 czy inną liczbę na tej samej zasadzie co nick.
Kod
<img src="obrazek.php?nick=JakisNick&numer=301 />
  1. <?php
  2. $nick = $_GET['nick'];
  3. $numer = $_GET['numer'];
  4. // nie zapomnij o filtrowaniu/sprawdzaniu zmiennych
  5.  
  6. // wszystkie pliki to png ? jesli tak to juz z gorki. w przeciwnym wypadku musisz sprawdzic mime plku i i uzyc adekwatnej funkcji do image create
  7. $img = imagecreatefrompng($numer.'.png');
  8.  
  9. ?>
onelife
Ok to już ogarnąłem. Jak mógłbym nałożyć obrazek B na obrazek A w ustalonej przeze mnie pozycji ?
fiszol
imagecopy, imagecopymerge, imagecopyresampled, imagecopyresized.

Najwyższy czas żebyś zaczął czytać manuale.
http://php.net/manual/en/ref.image.php
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.