mohi Posted January 4, 2008 Posted January 4, 2008 Mysql-ben tárolt képet szeretnék megjeleníteni, de nem sikerül. Rengeteg hozzászólást elolvastam mielõtt végsõ megoldásként segítséghez folyamodom. A kódrészlet a következõ: <img src=getkep.php?imgid=5>, de nem jelenik meg. Az iniben be van a php_gd2.dll, és a php_exif.dll extension kapcsolva a getkep.php-ben a header("Content-type: image/jpeg");-t elküldöm. Ennek ellenére vagy nem jeleníti meg a képet, vagy ha direktben hívom meg a getkep.php-t akkor a kép helyett a linket írja ki. Remélem van valakinek ötlete. Elõre is köszönöm
Kovács Dávid ( Davs ) Posted January 4, 2008 Posted January 4, 2008 <img src="getkep.php?imgid=5"> - próbáld meg idézõjelekkel. echo "<img src=\"antispam.php\" alt=\"img\" />" ; - nekem így mûködik. Az antismap.php: <?php session_start(); $str_text=str_split($_SESSION["testab"]); $a=rand(0,4); $font_size=20; $os_x=10; $os_y=40; //115*60 $font="pic/antispam/comic.ttf"; $img=imagecreatefromjpeg("pic/antispam/bg.jpg") or die("asd"); $color=imagecolorallocate($img,255,255,255); $f_r=rand(1,2); $angle=rand(-10,10); $test=imagettftext($img,$font_size,$angle,$os_x,$os_y,$color,$font,$str_text[0]); $f_r=rand(1,2); $angle=rand(-10,10); $os_x=$os_x+($font_size*1.3); $test=imagettftext($img,$font_size,$angle,$os_x,$os_y,$color,$font,$str_text[1]); $f_r=rand(1,2); $angle=rand(-10,10); $os_x=$os_x+($font_size*1.3); $test=imagettftext($img,$font_size,$angle,$os_x,$os_y,$color,$font,$str_text[2]); $f_r=rand(1,2); $angle=rand(-10,10); $os_x=$os_x+($font_size*1.3); $test=imagettftext($img,$font_size,$angle,$os_x,$os_y,$color,$font,$str_text[3]); header('Content-type: image/jpeg'); imagejpeg($img); ?>
payskin Posted January 4, 2008 Posted January 4, 2008 a getkep.php-ben a header("Content-type: image/jpeg");-t elküldöm. ??? Az miért jó? Az HTML tag src attribútuma nem a képet tartalmazza, hanem a kép elérési útját. <img src="http://www.valahol.hu/kepek/akarmi.jpg" .... > Ennek megfelelően az alábbi kódban (amit valóban illene idézőjelek közé tenni <img src="getkep.php?imgid=5"> a getkep.php-nak a kép URL-jét kéne visszaadnia, ezt: http://www.valahol.hu/kepek/akarmi5.jpg, nem pedig magát a képet.
Kovács Dávid ( Davs ) Posted January 5, 2008 Posted January 5, 2008 A getkep.php-ben KELL az a header. Mert ugyebár ha nem tesz oda header-t, akkor az csak egy sima text (.php) file, ami ugyebár NEM kép, ezért az <img> nem fogja megjeleníteni! Amúgy nézd meg az én kódomat! Az a négy ismétlõdés az csak annyit tesz, hogy egy bizonyos képre rak 4 betût. Ezt a 4 betût a $_SESSION["testab"] tartalmazza, amit a regisztrálós formban egy hidden inputtal elküldök és leellenõrzöm, hogy ugyanazt adta-e meg. Ezt pedig dinamikusan kell, minden user-nek más képet kell (vagyis illene) megadni, ezért jó, hogy ha a php csinálja a képet és nem statikusan hivatkozunk rá.
mohi Posted January 5, 2008 Author Posted January 5, 2008 Igaz, ha csak html-rõl lene szó és directbe le lenne tárolva, akkor valóban elérési utat kellene megadni, de mival mysql-bõl szedi ki, ezért kell így megadni, ahogyan leírtam.
mohi Posted January 5, 2008 Author Posted January 5, 2008 Sikerült rájönnöm a hibára, bár lehet, hogy valaki tud rá megoldást. A getkep.php beincludol egy fuggvenyek.php-t. Ha ez nincs benne, akkor mûködik, ha benne van, akkor nem. Kiszedtem az összes függveny belõle és akkor jó volt, de ha csak egyetlen függvény is van benne, akkor nem. Érdekes nem? Köszönöm mindenkinek a hozzászólást.
Kovács Dávid ( Davs ) Posted January 5, 2008 Posted January 5, 2008 a getkep.php elejére, rögtön a <?php után a második sorba írd be, hogy ob_start() ; . Azután include-old meg a fuggvenyek.php-t (a függvényekkel együtt) és próbáld ki, hogy megy-e. A függvényeid abban a file-ban ÍRNAK ki valami? Tehát van bennük echo vagy print?
payskin Posted January 6, 2008 Posted January 6, 2008 A getkep.php-ben KELL az a header. Mert ugyebár ha nem tesz oda header-t, akkor az csak egy sima text (.php) file, ami ugyebár NEM kép, ezért az nem fogja megjeleníteni! Ah so! Értem: a PHP nem a kép url-jét adja vissza, ahogy számomra logikus volt, hanem átlényegül magává a képpé! Furfangos egy fordított lengyel logika! Köszi a magyarázatot!
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Üdv! mindenkinek! Egy ideje ismerkedem a PHP-vel, most találtam egy rövid képlistázó kódot egy tananyagban, amit szerettem volna kipróbálni. A gépen AppServ fut. A kód az alábbi (behelyettesítésekkel): <?php $kvtnev="C:/AppServ/www/kepek"; $kvt=opendir($kvtnev); while ($fajl=readdir($kvt)) { if (is_file("$kvtnev/$fajl") && exif_imagetype("$kvtnev/$fajl")) print "<p><img src=$kvtnev/$fajl border=1></p>"; } closedir($kvt); ?> A kapott hibaüzenet pedig ez: "Fatal error: Call to undefined function exif_imagetype() in C:\AppServ\www\keplistazas.php on line 6" Valaki segítene, hogy miért nem mûködik? Köszönöm
arpsoft Posted January 22, 2009 Posted January 22, 2009 A php.ini-ben be van kapcsolva a php_gd2.dll és a php_exif.dll extension?
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Éppen most nézem (mert közben azért kutakodom én is) és íme ezek a sorok vannak a php.ini-recommended fájlban: ;extension=php_mbstring.dll ;extension=php_bz2.dll ;extension=php_curl.dll ;extension=php_dba.dll ;extension=php_dbase.dll ;extension=php_exif.dll ;extension=php_fdf.dll ;extension=php_filepro.dll ;extension=php_gd2.dll ;extension=php_gettext.dll
arpsoft Posted January 22, 2009 Posted January 22, 2009 Az exif és a gd2 elől vedd ki a pontosvesszőt.
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Bocsánat, ez jelenti azt, hogy be van-e kapcsolva?
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Tehát a php5 könyvtárban két php.ini fájl is létezik az egyik php.ini-dist a másik php.ini-recommended. Mivel a pontosvesszõk recommended-bõl történõ kivétele nem segített, gondoltam kiveszem a másik fájlban is a pontosvesszõket. Sajnos nem lett jobb a helyzet!
arpsoft Posted January 22, 2009 Posted January 22, 2009 A -recommended.ini-t nevezzed át php.ini-re. Persze ezt már rég meg kellett volna tenni.
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Nem tudtam, hogy át kell nevezni, de most megtettem. kösz! A gond még így is gond. Ellenben ha az if sor végén ";" van és ebben a sorban a / jeleket megfordítom, akkor megmutatja a két képet, de megjelenik további két képnek is a kis ikonja, amit nem tud megjeleníteni. ???
arpsoft Posted January 22, 2009 Posted January 22, 2009 Akkor csiszoljunk a kódon is: <?php $kvtnev="C:/AppServ/www/kepek"; $kvt=opendir($kvtnev); while ($fajl=readdir($kvt)) { $fajlnev=$kvtnev. "/" . $fajl; if (is_file($fajlnev) && exif_imagetype($fajlnev)) print "<p><img src=$fajlnev border=1></p>"; } closedir($kvt); ?>
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Nálad mûködik ez a kód Arpsoft? Nekem az eredeti hibajelzést (Fatal error: Call to undefined function exif_imagetype() in C:\AppServ\www\keplistazo.php on line 19) produkálja. Lehet, hogy valami nem jól van beállítva a gépemen, vagy a PHP-ban? A PHP 5.1.6-os
arpsoft Posted January 22, 2009 Posted January 22, 2009 A php.ini-ben az mbstring-et is engedd szabadon. Egyébként: http://hu.php.net/manual/en/exif.setup.php
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Ajjaj, megtettem, de semmi változás. A php.ini-s változtatások után nem kell újraindítani a gépet, ugye?
tjoco1 Posted January 22, 2009 Posted January 22, 2009 Hát, ez nem akar mûködni De azért köszönöm a segítséget!
payskin Posted January 23, 2009 Posted January 23, 2009 Meglátásom szerint újra fel kéne raknod a PHP-t a szerverre, ezúttal rendesen végigcsinálva a telepítési és konfigurálási lépéseket. A kiemelt Apache+PHP+MySQL téma talán segíthet, bár bevallom, nem tudom, mi az az AppServ. --- What is AppServ? AppServ is not support by Thai Goverment or Corporation but this program was inspire by Phanupong Panyadee (AppServ Foundation). Concept of AppServ it is Easy to install Apache, PHP, MySQL in 1 minute. Many people in this world have problem when Install Apache, PHP, MySQL becuase use long time to configure and some time can make dizzy. LOOOOOOOOOOOOOOOOOOL! Ez komoly?! Már az első mondat mindent visz, mint Lola T az autóskártyában, hiszen nyilván ez a legfontosabb információ, amit az embereket az AppServ kapcsán tudni szeretnének. A második aztán mindent megmagyaráz. Igen, ez talán igaz is volt úgy 5 éve, én is rengeteget szívtam vele. Na de erre a komoly problémára olyan megoldást sikerült készíteni, ami feltelepíti a PHP-t és nem konfigurálja be a működéséhez szükséges php.ini-t?! Ó, édes istenem.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now