Bild per include() einbinden klappt nicht

Dr Dau

ich wisch hier durch
Hallo!
Ich versuche ein Bild (angebot.jpg) in einer DIV-Box per include() einzbinden.
Wenn dieses Bild nicht vorhanden ist soll ein alternatives Bild (kein_bild.jpg) angezeigt werden.

Wenn das Bild vorhanden ist wird aber nur ein Platzhalter (das kleine Kästchen mit dem roten X bei
fehlenden Bildern) angezeigt und darunter haufenweise Kryptische Zeichen
kleiner Ausschnitt:
Code:
ò4#ºJ}tý{hÿ´.ùØýð¨ÿÏ£Ûï»ÿP¯-§¨çR"»Ý·÷]îu›ÕʺþS?­–

Wenn das Bild nicht vorhanden ist wird nur der Platzhalter für das alternative Bild angezeigt.
Dieser Platzhalter sagt mir unter Eigenschaften:
(%20 habe ich zur besseren Übersicht durch Leerzeichen ersetzt)
HTML:
http://meine-domain/<br /><b>Warning</b>: Unexpected character in input: '' (ASCII=31) state=1 in <b>/var/www/htdocs/angebot/kein_bild.jpg</b> on line <b>43</b><br /><br /><b>Parse error</b>: parse error in <b>/var/www/htdocs/angebot/kein_bild.jpg</b> on line <b>43</b><br />

Einen kleinen Lichtblick hatte ich unter http://www.tutorials.de/tutorials180779.html
gefunden, dieses hat aber auch nichts gebracht.

Leider hat mich auch PHP.net nicht weiter gebracht.
Meine Meinung nach müsste das Script so wie es ist funktionieren.
Ich hoffe dass mir hier jemand weiterhelfen kann.

MfG Dr Dau

Hier nun der Quelltext der angebot.php
PHP:
<html>
<head>
<title>
<?php
if (file_exists("../angebot/ueberschrift.txt") && ( $error!=1 ))
{
include("../angebot/ueberschrift.txt");
}
?>
</title>
<link rel=stylesheet type="text/css" href="base_ie.css">
<base target="rechts">
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="imagetoolbar" content="no">
<meta name="MSSmartTagsPreventParsing" content="true">
<meta name="generator" content="Notepad">
<script language="JavaScript">
<!--
var ZielDatei = "index.html?angebot.php";
if ( ! top.FramesetGeladen) {
if (document.images)
top.location.replace(ZielDatei);
else
top.location.href = ZielDatei;
}
//-->
</script>
</head>
<body>
<div class="box">
<font class="angebot_ueberschrift">
<?php
if (file_exists("../angebot/ueberschrift.txt") && ( $error!=1 ))
{
include("../angebot/ueberschrift.txt");
}
?>
<br>
</font>
<br>
<font class="angebot_beschreibung">
<table class="kleine_schrift" border="0" cellpadding="0" cellspacing="0">
<?php
$datei = fopen("../angebot/beschreibung.txt", "r");
while (!feof($datei))
{
$zeile = fgets($datei, 512);
$zeile = str_replace("/","&frasl;",$zeile); 
$eintrag = explode("###", trim($zeile));
?>
<tr>
<td align="left" valign="bottom" width="300">
<?php
echo basename($eintrag[0]);
?>
</td>
</tr>
<?php
}
fclose($datei);
?>
</table>
</font>
<br>
<font class="angebot_preis">
<?php
if (file_exists("../angebot/preis.txt") && ( $error!=1 ))
{
include("../angebot/preis.txt");
}
?>
&nbsp;&euro;
</font>
<br>
<font class="micro_schrift">
Preis inkl. MwSt.<br>
Online-Bestellung ist <u>nicht</u> möglich!
</font>
</div>
<div class="angebot_bild">
<img src="
<?php
if (file_exists("../angebot/angebot.jpg"))
{
header("Content-Type: image/jpeg"); include("../angebot/angebot.jpg");
}
else
{
header("Content-Type: image/jpeg"); include("../angebot/kein_bild.jpg");
}
?>
" border="1">
</img>
</div>
</body>
</html>
 
reptiler hat gesagt.:
Ein Bild kann man glaub ich nicht includen.
Richtig, nicht wenn die Ausgabe eine HTML-Datei werden soll!
In das HTML-Tag img schreibt man nicht die Bilddaten, sondern den Pfad zum Bild. Also kein [phpf]header[/phpf] und kein [phpf]include[/phpf], sondern nur echo "Bild.jpg";.
[phpf]header[/phpf] sollte ohnehin eine Fehlermeldung an der Stelle bringen.

Gruß hpvw
 
hpvw hat gesagt.:
sondern nur echo "Bild.jpg";
Super, so funktioniert es genau so wie ich es haben möchte.
DANKE :)

PHP:
<div class="angebot_bild">
<img src="
<?php
if (file_exists("../angebot/angebot.jpg"))
{
	echo "../angebot/angebot.jpg";
}
else
{
	echo "../angebot/kein_bild.jpg";
}
?>
" border="1">
</img>
</div>

hpvw hat gesagt.:
[phpf]header[/phpf] sollte ohnehin eine Fehlermeldung an der Stelle bringen.
[phpf]header[/phpf] hat aber keine Fehlermeldung "ausgespuckt".
Aus dem oben genannten konnt ich lediglich erkennen dass das Bild als ASCII, also als Text verarbeitet wurde.
Darum mein Versuch mit [phpf]header[/phpf] welches aber keinerlei Wirkung gezeigt hatte.

Gruss Dr Dau
 
Zurück