PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP und GD



Aetius
21-04-2003, 19:17
Hallo Zusammen,

ich versuche gerade in PHP die grafischen Ausgaben.
Dabei stoße ich auf ein Problem.
Wenn ich versuche in ein HTML-Doku ein PHP-Script aufzurufen, welches meine Grafik erstellt, bekomme ich folgende Fehlermeldung;

"Warning: Cannot add header information - headers already sent by (output started at /mnt/sysvol4/intranet/oracle/inc_php/html_kopf.inc.php:9) in /mnt/sysvol4/intranet/oracle/inc_php/test002.inc.php on line 2"

Und darunter erscheint diese Meldung vom Bild.

??PNG
Das PHP-Sript alleine funktioniert, die Grafik wird erstellt.

Kann mir jemand einen Tipp geben was ich falsch mache oder was ich vergessen habe?
Ich weis nur das es was mit dem HTTP-Protokoll mit den MIME-Typs zu tun hat. Genau blicke ich es aber nicht.

Danke

ps. So sind die beiden Scripte
html_kopf.inc.php
<html>
<head>
<title>::: INTRANET ::: INTRANET ::: INTRANET :::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../form.css" type="text/css">
<link href="intranet.ico">
</head>

<body>

<?php
include("inc_php/test002.inc.php");
?>

...


test002.inc.php
<?php
Header("Content-type: image/png");

$weite=780;
$hoehe=600;

$im = @ImageCreate($weite, $hoehe) or die ("GD Bildgenerierung kann nicht angesprochen werden!");

$black = ImageColorAllocate($im, 0,0,0);
$red = ImageColorAllocate($im, 255,0,0);
$green = ImageColorAllocate($im, 0,128,0);
$blue = ImageColorAllocate($im, 0,50,160);
$white = ImageColorAllocate($im, 255,255,255);

ImageFill($im,0,0,$blue);

ImagePNG($im);
ImageDestroy($im);
?>

Gaert
21-04-2003, 21:28
Hallo!

So wie du das angehst kann das aus verschiedenen Gründen nicht funktionieren!

1.
Du versuchst das Bild direkt in den Code des Bildes direkt in deine HTML Seite einzubinden... das ist NICHT möglich. Du musst das Bild über den <img> Tag einbinden
z.B.
<img src="bild.php" />

2.
Header können nur gesendet werden, noch keine Ausgabe an den Browser gesendet wurde (siehe auch PHP Doku http://php.net/header ).
In deinem Fall ist das aber schon geschehen, da du vor dem Aufruf HTML ausgegeben hast - daher kommt dann auch die Fehlermeldung.

Richtig wäre also:

seite.php


<html>
<head>
<title>::: INTRANET ::: INTRANET ::: INTRANET :::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../form.css" type="text/css">
<link href="intranet.ico">
</head>

<body>
<img src="bild.php" />
</body>
</html>


bild.php


<?php
Header("Content-type: image/png");

$weite=780;
$hoehe=600;

$im = @ImageCreate($weite, $hoehe) or die ("GD Bildgenerierung kann nicht angesprochen werden!");

$black = ImageColorAllocate($im, 0,0,0);
$red = ImageColorAllocate($im, 255,0,0);
$green = ImageColorAllocate($im, 0,128,0);
$blue = ImageColorAllocate($im, 0,50,160);
$white = ImageColorAllocate($im, 255,255,255);

ImageFill($im,0,0,$blue);

ImagePNG($im);
ImageDestroy($im);
?>

Aetius
22-04-2003, 14:51
Danke,

hast mir sehr geholfen

Gruss