Jump to content

Kép megjelenítése


mohi
 Share

Recommended Posts

mohi

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. :fal:

 

Remélem van valakinek ötlete.

 

Elõre is köszönöm

 

Link to comment
Share on other sites

Kovács Dávid ( Davs )

<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

payskin
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

Kovács Dávid ( Davs )

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

mohi

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

mohi

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

Kovács Dávid ( Davs )

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

payskin
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! :huh: É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

  • 1 year later...
tjoco1

Ü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

arpsoft

A php.ini-ben be van kapcsolva a php_gd2.dll és a php_exif.dll extension?

Link to comment
Share on other sites

tjoco1

É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

arpsoft

Az exif és a gd2 elől vedd ki a pontosvesszőt.

Link to comment
Share on other sites

tjoco1

Bocsánat, ez jelenti azt, hogy be van-e kapcsolva?

Link to comment
Share on other sites

tjoco1

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

arpsoft

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

tjoco1

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

arpsoft

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

tjoco1

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

tjoco1

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

arpsoft

Elvileg nem.

Link to comment
Share on other sites

tjoco1

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

payskin

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?! :fetreng:

 

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. :hááát:

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...