mohi 0 Share 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 Link to comment Share on other sites More sharing options...
Kovács Dávid ( Davs ) 0 Share 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); ?> Link to comment Share on other sites More sharing options...
payskin 917 Share 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. Link to comment Share on other sites More sharing options...
Kovács Dávid ( Davs ) 0 Share 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á. Link to comment Share on other sites More sharing options...
mohi 0 Author Share 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. Link to comment Share on other sites More sharing options...
mohi 0 Author Share 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. Link to comment Share on other sites More sharing options...
Kovács Dávid ( Davs ) 0 Share 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? Link to comment Share on other sites More sharing options...
payskin 917 Share 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! Link to comment Share on other sites More sharing options...
tjoco1 0 Share 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 Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted January 22, 2009 A php.ini-ben be van kapcsolva a php_gd2.dll és a php_exif.dll extension? Link to comment Share on other sites More sharing options...
tjoco1 0 Share 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 Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted January 22, 2009 Az exif és a gd2 elől vedd ki a pontosvesszőt. Link to comment Share on other sites More sharing options...
tjoco1 0 Share Posted January 22, 2009 Bocsánat, ez jelenti azt, hogy be van-e kapcsolva? Link to comment Share on other sites More sharing options...
tjoco1 0 Share 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! Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted January 22, 2009 A -recommended.ini-t nevezzed át php.ini-re. Persze ezt már rég meg kellett volna tenni. Link to comment Share on other sites More sharing options...
tjoco1 0 Share 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. ??? Link to comment Share on other sites More sharing options...
arpsoft 12 Share 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); ?> Link to comment Share on other sites More sharing options...
tjoco1 0 Share 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 Link to comment Share on other sites More sharing options...
arpsoft 12 Share 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 Link to comment Share on other sites More sharing options...
tjoco1 0 Share 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? Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted January 22, 2009 Elvileg nem. Link to comment Share on other sites More sharing options...
tjoco1 0 Share Posted January 22, 2009 Hát, ez nem akar mûködni De azért köszönöm a segítséget! Link to comment Share on other sites More sharing options...
payskin 917 Share 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. Link to comment Share on other sites More sharing options...
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