Problem mit Datenbank und Bilderzeugung bei gd

fluppi99

Grünschnabel
Hallo zusammen!

Ich stehe vor folgendem Problem: In einer PHP-Datei soll mit Hilfe von GD ein Bild erzeugt werden. Aus einer Datenbank werden Koordinaten eingelesen, die auf dem Bild als Punkte dargestellt werden sollen.

Das Bild ansich läßt sich generieren und wird korekt angezeigt. Sobald ich jedoch Daten aus der DB hole erscheint nur noch ein leeres Bild.

Hier der Code der Html-Datei:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Karte</title>
</head>
<body>

bild:<br>

<img width="999px" height="999px" alt="bild" src="s_bild.php">

</body>
</html>

Der Quellcode von s_bild.php (hier wird das Bild generiert):

PHP:
<?php
header('Content-type: image/jpeg');

$image = @imagecreate(999, 999);

$farbe_a 	= imagecolorallocate($image,14,39,64);
$farbe_b 	= imagecolorallocate($image,13,43,9);
$sektor_a	= imagecolorallocate($image,0,128,255);
$sektor_b	= imagecolorallocate($image,30,255,0);
$farbe_n	= imagecolorallocate($image,186,180,28);

imagefilledrectangle($image, 0, 0, 999, 474, $farbe_a);
imagefilledrectangle($image, 0, 475, 999, 525, $farbe_n);
imagefilledrectangle($image, 0, 526, 999, 999, $farbe_b);
include("db_connect.php");

$sql_select_1 	= "select ort from dbx_acc";
$select_result1 = mysql_query($sql_select_1);

$sektor_koordinaten = Array();
$zaehler = 0;

while($data = mysql_fetch_assoc($select_result1))
    {
    $sektor_koordinaten[$zaehler]   = $data['ort'];
    $zaehler++;
	}

$tmp_array = Array();

for($i = 0; $i < $zaehler; $i++)
	{
	$tmp_array 	= explode("/", $sektor_koordinaten[$i]);
	$tmp_varx	= $tmp_array[0] + 4;
	$tmp_vary	= $tmp_array[1] + 4;
	if($tmp_array[1] >= 500)
		{
		imagefilledrectangle($image, $tmp_array[0], $tmp_array[1], $tmp_varx, $tmp_vary, $farbe_a);
		}
	else
		{
		imagefilledrectangle($image, $tmp_array[0], $tmp_array[1], $tmp_varx, $tmp_vary, $farbe_b);
		}
	}

imagejpeg($image,"",100);
?>

Wenn ich den Teil ab dem Include bis einschließlich der for-Schleife weglasse wird das "Hintergrundbild" erzeugt - mit diesem Teil nur ein Platzhalter im Browser angezeigt.

Leider bin ich etwas ratlos und weiß nicht, woran daß genau liegt.
Hoffentlich kann mir jemand von Euch helfen !

Vielen Dank schonmal & Grüße,
Fluppi99
 
Wahrscheinlich tritt ein Fehler auf. Gib als Inhaltstyp mal Klartext („text/plain“) an und ruf das Skript direkt auf.
 
Jetzt klappt´s!
-es lag daran, daß ich das Array in einer Sessionvariable gespeichert habe. Wenn ich die Session vorher natürlich nicht starte, ist auch kein Array da :eek:

Naja, trotzdem danke für die Hilfe ! :)

Viele Grüße,
Fluppi99
 
Zurück