Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z biblioteką GD
Forum PHP.pl > Forum > Przedszkole
binprogrammer
Witam. Napisałem skrypt, który pokażę mi losową datę na obrazku przy pomocy biblioteki GD. Jednak mam problem z tym, że na localhost wszystko działa, jednak nie na innych serwerach takich jak proserwer.pl, cba.pl, onuse.pl itp.

Wyświetla mi się obrazek jako tło pod skrypt, jednak nie działa tak jakby ta funkcja

  1. ImageTTFText($rysunek, 20, 0, 70, 115, $bialy, 'ARIAL.ttf', $data);


Tutaj cały skrypt

  1. <?php
  2. $losowanie = rand(1, 9999999999999);
  3. $los = md5($losowanie);
  4. $jpg = '.jpg';
  5.  
  6. $zmienna[1] = 'Stycznia';
  7. $zmienna[2] = 'Lutego';
  8. $zmienna[3] = 'Marca';
  9. $zmienna[4] = 'Kwietnia';
  10. $zmienna[5] = 'Maja';
  11. $zmienna[6] = 'Czerwca';
  12. $zmienna[7] = 'Lipca';
  13. $zmienna[8] = 'Sierpnia';
  14. $zmienna[9] = 'Wrzesnia';
  15. $zmienna[10] = 'Pazdziernika';
  16. $zmienna[11] = 'Listopada';
  17. $zmienna[12] = 'Grudnia';
  18.  
  19. $dzien = rand(1, 30);
  20. $miesiac = rand(1, 12);
  21. $rok = rand(2013, 2032);
  22. $data = ' '.$dzien.' '.$zmienna[$miesiac].' '.$rok.' ';
  23.  
  24. // Otwieramy plik graficzny
  25. $rysunek = ImageCreateFromJpeg("ex.jpg");
  26.  
  27. // Definicje kolorów jako składowe RGB
  28. $bialy = ImageColorAllocate($rysunek, 255, 255, 255);
  29.  
  30. // Lokacja łańcucha i jego wartość
  31. ImageTTFText($rysunek, 20, 0, 70, 115, $bialy, 'ARIAL.ttf', $data);
  32.  
  33. // Stworzenie wynikowej grafiki
  34. header("Content-type: image/jpeg");
  35. ImageJpeg($rysunek);
  36.  
  37. //Zapisanie obrazka
  38. imagejpeg($rysunek, $los.'.jpg', 100);
  39. imagedestroy($rysunek);
  40. ?>



Ps. I jak zrobić, aby po wygenerowaniu takiego obrazka wyświetlało mi link? Bo jak daje echo to mi się nie pokazuję :/ Próbowałem też z zincludowaniem, ale nie wyszło mi. Jakieś propozycje?

Nikt nie pomoże?

No luudzie... żadnych pomysłów? serio? każda wypowiedź się dla mnie liczy, mam brak weny :/ już nie wiem co to może być .

Odświeżam.
maniana
Ścieżka do i nazwa pliku z czcionką się zgadza? Np. ARIAL.ttf to nei to samo co Arial.ttf. W linii 33 daj exit i zobacz czy nie sypnie błędami, wcześniej na początku dodaj: error_reporting(E_ALL);

A jak podlinkować? Najprościej:
  1. <a href="nazwa_pliku.php">Klik</a>
:)

Edit: Tablicę możesz zapisać tak:
  1. $zmienna = array('','Stycznia','Lutego','Marca','Kwietnia','Maja','Czerwca','Lipca','Sierpnia','Wrzesnia','Pazdziernika','Listopada','Grudnia');
binprogrammer
  1. 33. exit();
  2. 34. // Stworzenie wynikowej grafiki


To zamiast obrazka jest białe to.

A jeżeli dodaje przed ?>

  1. echo '<a href="nazwa_pliku.php">Klik</a>';


to link nie pokazuję się, i chyba nie ma takiego zamiaru

ps. pokazuję się ale tylko jak krzaczki mi się pokazały zamiast obrazka raz na hostingu którymś

Coś jeszcze mogę zrobić ?

* I jak jaką pętle dodać do tego, żeby mi zamiast losowało nazwę pliku to przypisywało takie jakby id ?
maniana
Jeśli pokazują się krzaczki bez phpowego errora to jest dobrze. Krzaczki to właśnie wygenerowany jpg a jest on krzaczkami jeśli nie ma wysłanego nagłówka z informacją, że to plik graficzny jpg.
binprogrammer
A to teraz może czemu nie działa mi na innych serwerach generowanie tekstu na obrazku?

Bo obrazek jako tako

  1. $rysunek = ImageCreateFromJpeg("ex.jpg");

się pokazuję, jednak właśnie nie działa tekst na nim.

I nadal chciałbym mieć taki link pod obrazkiem, może jakoś w ramce umieścić? Bo jak includowałem to nie działa ...

Powinno być tak jak na localhoscie


to jest podkład + imagettftext()
ARIAL.ttf jest napisane w skrypcie i w pliku dobrze


a na hostingach jest


To jest sam podkład z imagecratefromjpeg()
maniana
Może spwardź wersje GD w phpinfo tu i tam.
binprogrammer
Localhost



hosting


:/ A może jakieś zamienniki co do mojego wyświetlania tekstu na starszą wersję ?

* Może być jakaś alternatywa co piszę tylko na biało, podstwową czcionką, bo nie potrzebna mi jest jakaś inna.

I coś może na temat id tego obrazka generowanego? Najlepiej by było gdyby był obrazek zapisywalny pod postacią index.php?obrazek=1, jednak chyba na razie wystarczy zwykło zapisywanie w cyfrach od 1 dalej ..

Jakieś podpowiedzi?

?
maniana
Co to za hosting? Darmowy czy nie? Jeśli płatny to można cisnąć o podniesienie wersji pakietów.
W temacie szukaj w necie rozwiązań bo możliwe, że to przez wersję a ja jakoś nie mam pomysłów i możliwości sprawdzenia.

Co do linku to pytanie, co chciałbyś pod tym numerem przesłać? Jakie informacje zakodować?

Przeważnie przesyłając numer ID, później pobierasz detale jemu przypisane. Więc albo przesyłasz ID i pobierasz ten rekord z bazy danych albo przysyłasz od razu dane które chcesz wyświetlić. Te drugie rozwiązanie jest trochę niebezpieczne ale da się to obejść, np. przy wykorzystaniu sesji.
binprogrammer
Dwa darmowe i jeden płatny - na żadnym nie działa.
Chciałbym zrobić tak, aby po wygenerowaniu obrazka zapisywał się on w postaci index.php?id=1 itd. ponieważ teraz mi się zapisuję na serwerze po odświeżeniu, a po ponownym odświeżeniu nie ma możliwości wrócić do niego bez wchodzenia na ftp.

A tak to:
F5 - nowy obrazek > zapisano > wyswietl link http://example.com/index.php?id=1
F5 - nowy obrazek > zapisano > wyswietl link http://example.com/index.php?id=2

smile.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.