Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[php-mysql] problemen met image tonen uit database

Pagina: 1
Acties:

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 13-11 10:19

HenkS

Da_king alias HenkS

Topicstarter
hallo,

Ik ben bezig met een site voor fifa08-09 competities bij te houden.
Nu is de site al aardig af, ik wil alleen nog de clubshirts tonen.

Ik wil deze in een blob opslaan. Dit opslaan is ook reeds gelukt, als ik via phpmyadmin een rij in mijn tabel bekijk zie ik het shirt ook getoond worden.

echter nu wil ik het shirt ook tonen op de site. Ik had een vrij complexe query en de database instellingen etc netjes in een apart bestand include, maar om even terug te gaan naar de basis van het probleem heb ik echt alleen de hoog nodige code in een test bestandje geplakt om puur het probleem even te kunnen tackelen, echter lukt het me niet.

ik heb een test.php bestand aangemaakt met de volgende code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<HTML>
<BODY>
<?
Header( "Content-type: image/png");
mysql_connect('localhost','bla','bla') or die("Unable to connect to SQL server");
@mysql_select_db('hier staat mijn db') or die("Unable to select database"); 
$result=mysql_query("SELECT team_shirt FROM team WHERE team_id=1") or die("Can't Perform Query");
$row=mysql_fetch_row($result);
echo "<IMG SRC=\"$row[0]\">";

?>
</BODY>
</HTML> 


waarbij team_id zeker een shirt heeft als ik in mijn database kijk.

Als ik dit bestand nu uitvoer krijg ik allemaal vreemde tekens : <žŽ'Ó1Ì£éh<Á\NËÑ´„™MY9elBwOhL&cøLÆ0&#143;&£ñds9)G“f6a儱ñt:†çÂSéî1&#141;ñxŸñær\ŽÆ%ÌlÌÊ1c£ /oÝøôÕn]Ö~Qn>ö«ðƒøü¯0ÆVŒ½å1"Øe0Bf^Z‡íckvÞå×›Õ>ª|Çþ)ë~b«Ñ½ôÝÆ¥GìxnxÆg®7–ª{pû

Vast binaire code?

Dit is overigens de waardes van het veld team_shirt in de database
team_shirt blob MIME: image/png BINARY Ja NULL

wat doe ik nu fout? want ik heb veel gezocht naar codes op internet van hoe het op te slaan en hoe het weer te geven.

Nog 1 vraagje:
mbt deze regel:
Header( "Content-type: image/png");

betekent dit, dat je enkel .png kan weergeven en geen .jpg (dus je kan ze niet door elkaar opslaan in de db?

bedankt

Verwijderd

Het werkt niet omdat je niet de link geeft van het plaatje, maar meteen het plaatje zelf.
Als je nou in test.php het volgende zet:

HTML:
1
2
3
4
5
<html>
<body>
<img src=plaatje.php>
</body>
</html>



en in plaatje.php het volgende:

PHP:
1
2
3
4
5
6
7
8
9
<?
Header( "Content-type: image/png");
mysql_connect('localhost','bla','bla') ;
@mysql_select_db('hier staat mijn db'); 
$result=mysql_query("SELECT team_shirt FROM team WHERE team_id=1") or die("Can't Perform Query");
$row=mysql_fetch_row($result);
imagepng($row[0]);

?>

Dan moet het werken ;)

Die header code zorgt er trouwens voor dat je browser weet dat je een png plaatje stuurt.

[ Voor 9% gewijzigd door Verwijderd op 28-08-2008 17:37 ]


  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 13-11 10:19

HenkS

Da_king alias HenkS

Topicstarter
hey

ik heb het exact zo overgenomen, alleen ff ipv png heb ik er jpg ingezet, want ik heb effe een paar jpgs in de db gezet

als ik nu test.php aanroep zie ik niks, scherm is volledig wit

als ik rechtstreeks plaatje.php aanroep staat er:

http://localhost/xampp/fifaworld360/plaatje.php
bij pagina info van plaatje.php staat wel: type: image/jpeg

maar waarom zie ik niks?

Verwijderd

Doet ie het wel met png's?
Want als je hem gebruikt met jpegs moet je natuurlijk geen imagepng() gebruiken maar imagejpeg()

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 13-11 10:19

HenkS

Da_king alias HenkS

Topicstarter
met png's kreeg ik een melding dat het plaatje niet correct was, waarom weet ik niet

dus ik heb even een .jpg erop gezet

maar ik zie dus niks, ik heb het volgende

test.php:

<html>
<body>
<img src=plaatje.php>
</body>
</html>


plaatje.php:
<?
Header( "Content-type: image/jpg");
mysql_connect('localhost','bla','bla') or die("Unable to connect to SQL server");
@mysql_select_db('fifaworld360') or die("Unable to select database");
$sql = "SELECT team_shirt FROM team WHERE team_id=1";
$result=mysql_query($sql) or die("Can't Perform Query");
$row=mysql_fetch_row($result);
imagejpeg($row[0]);
?>

ik heb overigens gd goed gecompileerd, want dat zie ik in phpinfo

Verwijderd

Verander eens:
Header( "Content-type: image/jpg");
in:
Header( "Content-type: image/jpeg");

Heb zelfs net zoiets gemaakt alleen dan met png's, werkt hier allemaal perfect.

Edit:
Is het veld team_shirt in de database wel binair? Want anders gaat het natuurlijk ook niet werken.

[ Voor 23% gewijzigd door Verwijderd op 28-08-2008 18:01 ]


  • Noork
  • Registratie: Juni 2001
  • Niet online
Het gebruik van imagejpeg() hoeft volgens mij helemaal niet. Een gewone echo lijkt me voldoende.

Verwijderd

Ow ja natuurlijk, imagejpeg moet je alleen gebruiken als je een image met de GD van php hebt gemaakt. Volgens mij moet je dus helemaal geen imagejpeg() gebruiken maar gewoon echo. xD

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 13-11 10:19

HenkS

Da_king alias HenkS

Topicstarter
echt vreemd, ik heb het nu exact zoals jij het hebt en ik zie niks :(

ik heb het ipv lokaal ook ff op een server gezet:

http://snijdm.40gigs.com/test.php (geen snelle server)
http://snijdm.40gigs.com/plaatje.php

http://snijdm.40gigs.com/info.php (phpinfo)

kuyn je hier wat mee/

alvast tnx voor je hulp

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 13-11 10:19

HenkS

Da_king alias HenkS

Topicstarter
Verwijderd schreef op donderdag 28 augustus 2008 @ 18:05:
Ow ja natuurlijk, imagejpeg moet je alleen gebruiken als je een image met de GD van php hebt gemaakt. Volgens mij moet je dus helemaal geen imagejpeg() gebruiken maar gewoon echo. xD
nu doet ie het, dat was t dus :)

tnx allemaal

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-09 20:59
HenkS schreef op donderdag 28 augustus 2008 @ 18:08:
[...]


nu doet ie het, dat was t dus :)

tnx allemaal
Ik wou net zeggen de oplossing was al gegeven, maar je had natuurlijk ook zelf in de handleiding kunnen kijken wat er gebeurt als je imagepng aanroept. En zelf logisch nadenken kan ook nooit kwaad natuurlijk :) .

If I can't fix it, it ain't broken.

Pagina: 1