Archief - PHP: image wordt getoond als text

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

den Acid Burn

Legacy Member
lo,

de site werkt met tables.
alle content komt in een <td> met php include.
dit is de code erachter:

Code:
 <?php 
		echo '<br />';
	        if (isset($_GET['page']) && $_GET['page'] != '') {
			include($_GET['page']);
		}
		else
			include('home.htm');
		?>

dan heb ik het volgende bestand gemaakt om de fotos uit de database op te halen en als thumbnails te tonen:

Code:
<?php
	$dir = 'images/albums/brasschaat/';

	$conn = mysql_connect("localhost","???","???");
	mysql_select_db("???",$conn);
	$query = 'select id, naam from foto_brasschaat';
	$result = mysql_query($query,$conn);
	
	$teller = 0;
	
	while ($row = mysql_fetch_array($result)) {
			if ($teller%5 == 0) {
				echo '</tr></table><table><tr align="left">';
			}
			echo '<td align="left"><img src="' . $dir . $row['naam'] . '" width="50" height="50" onClick="maximize(\'' .$row['naam']. '\')" style="border: 1px dashed white;" align="left" /></td>';
			//echo '<br />';
			$teller = $teller + 1;
	}
?>

dit is de javascript functie maximize:

Code:
<script language="javascript">
function maximize(naam) {
	alert("naam = " +naam);
	window.location = 'http://johanvdb.be/view_image.php?name='+naam;
}
</script>

en dit is de view_image.php die in de javascript functie wordt opgeroepen om de foto in zen origineel formaat te tonen in de <td> wanneer er op geklikt wordt:

Code:
<?php
  ob_start();

  if(isset($_GET['name'])) {
        header("Content-type: image/jpeg");		
		header('location:http://johanvdb.be/index.php?page=images/albums/brasschaat/' . $_GET['name'] . '.jpg');
        }
  else
        {
        echo 'error';
        }
?>

dit werkt allemaal bealve dat de foto in text getoond wordt ipv als foto wanneer je op de thumbnail klikt.
ik doe nochtans header("Content-type: image/jpeg"); bij view_image.php

wanneer ik de foto gewoon in een nieuw venster toon ipv in die <td> wordt hij wel als foto getoond ipv als text.

daarom denk ik dat hier iets aan veranderd moet worden bij deze code die alles inlaadt in de <td>:

if (isset($_GET['page']) && $_GET['page'] != '') {
include($_GET['page']);
}
else
include('home.htm');

kan iemand me hier mee helpen?

grtz kristof

BertG

Legacy Member
ik denk niet dat het de code is die alles op haalt (dat zou onlogisch zijn), maar je view-image.php

Ik zou aanraden om met je view-image.php een volwaardige html pagina te maken. waarin je dan een img-tag gebruikt.

anders:
Meschien moet je eerst es kijken of je de juiste paramter door geeft.
ob_start(); waarom gebruik je die?

den Acid Burn

Legacy Member
ob_start() om de header te kunnen veranderen naar content-type image/jpeg.
anders geeft php een error dat de headers al verzonden zijn.

xml

Legacy Member
Daar ligt dus je probleem, ik heb niet de volledige code bekeken, maar normaal heb je zoiets als

<img src="phpscript_dat_foto_maakt.php?id=88" .. />

klopt dit? Normaal kan je dan geen problemen hebben met headers aangezien het een afzonderlijk script is dat aangeroepen wordt. Als je dus ergens output hebt ervoor is je opbouw fout.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan