generowanie obrazka i jego wywołanie

0

mam plik obrazek.php, który ma zawartość

<?php $image_URL = "img1.png"; $font = './verdana.ttf'; $image = imagecreatefrompng($image_URL); $text_colour = imagecolorallocate($image,215,213,220); $text="tekst, który dynamicznie się zmienia, więc nie mogę zapisać gotowego obrazka na serwerze"; imagettftext($image,8,0,57,41,$text_colour,$font,$text); header( "Content-type: image/png" ); imagepng($image); imagedestroy($image); .?>

Tworzę nim stronę z obrazkiem, który wypełniam tekstem.

Wszystko działa ładnie pięknie ale mój problem polega na tym, że chcę ten wygenerowany obrazek wrzucić na innej stronie na forum, a dając ścieżkę do wygenerowanego obrazku jako http://...ścieżka.../obrazek.php forum nie widzi tej strony jako obrazek tylko jako stronę PHP.
Jak wywołać ze strony forum wygenerowany obrazek a nie stronę php, na której on się znajduje?

0

Zapewne używasz forum, które wymaga odpowiedniego rozszerzenia obrazka (co jest idiotyzmem) i nie łyka .php na końcu linku. Zainteresuj się mod_rewrite. Powinno rozwiązać problem jeśli po normalnym wejściu widzisz obraz, a forum go nie łyka.

0

lub po prostu skorzystaj z prostego tricku i podaj ścieżkę http://example.com/obrazek.php/dowolny_tekst.jpg (gdzie obrazek.php jest skryptem a dowolny_tekst.jpg to tylko tekst który zostanie wysłany do skryptu w $_SERVER['PATH_INFO'])
ale jak wyżej - upewnij się że wchodząc pod ten adres przez przeglądarkę widzisz normalnie obrazek

0

A co jeśli w adresie skryptu są dane wysłane GET-em? Obrazek.php jest szkieletem, do którego przesyłam dane. Przykładowo adres może wyglądać tak:
....ścieżka..../obrazek.php?id=123456&kolor=4
Czy w tym przypadku też stosować obrazek.php?id=123456&kolor=4/dowolny_tekst.jpg ?

0

Spróbuj oszukać forum:

obrazek.php?id=1234&kolor=4&n=/obrazek.jpg

Ciekawe czy łyknie... Jeśli nie zadziała polecam mod_rewrite, wtedy masz linki w stylu:

obrazek-1234-4.jpg

0

jak już pisałem możesz skorzystać z tego tekstu który przesyłasz, czyli możesz mieć link w postaci:

/obrazek.php/123456/4.jpg

i za pomocą PHP wyciągnąć z $_SERVER['PATH_INFO'] potrzebne dane
przykładowo:

preg_match('|^/(?<id>\d+)/(?<kolor>\d+)|', $_SERVER['PATH_INFO'], $data)
	or die('Złe wywołanie skryptu');
$_GET += $data;

po tych dwóch linijkach możesz już korzystać ze skryptu normalnie tak jak przedtem (dane dopiszą się do standardowej tablicy $_GET)

możesz też użyć mod_rewrite, pozwoli Ci to pozbyć się z adresu cząstki ".php"

0

mod_rewrite zadziałało tak jak powinno.
Dzięki za pomoc.
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1