PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Image per PHP mit Session-Daten erstellen (http://www.selfphp.de/forum/showthread.php?t=26053)

JJMcClure 03.10.2017 10:49:26

Image per PHP mit Session-Daten erstellen
 
Guten Morgen!

Wie man bei dem Post im Anfängerforum erkennen kann, bin ich kein erfahrener PHP-Anwender. Ich habe mir die Finger wund gegoogelt, um mein Problem eingrenzen zu können. Zumindest das ist mir gelungen...

Aber jetzt zu meinem Problem:

Ich möchte ein Image über eine PHP-Datei erstellen. Das funktioniert prima. Allerdings sollen in dem Image Daten angezeigt werden, die ich in einer anderen PHP-Datei mit einer Datenbankabfrage ermittelt habe. Ich kann die Daten mit dem SESSION-Befehl ohne Probleme an andere PHP-Dateien übergeben. Bei der Erstellung des Images klappt es aber nicht. Woran kann das liegen? Sehe ich den Wald vor lauter Bäumen nicht?

1. PHP-Datei
session_start();

Datenbankabfrage

$wert = array();
while($row = mysqli_fetch_object($ergebnis))
{
$wert[] = $row->Spieler1_Gesamt;
}
$_SESSION['Ergebnisdaten'] = $wert;
echo "<img src=bild.php>";

2. PHP-Datei (bild.php)
session_start();
$wert = $_SESSION['Ergebnisdaten'];
...
imageString($diagramm, 4, 10, 10 , $wert[0], $black);

Die ermittelten Werte werden aber nicht in die Bilddatei eingetragen. Was mache ich falsch?

Vielen Dank für Eure Bemühungen im Voraus.

Viele Grüße aus der Pfalz,

Markus

vt1816 03.10.2017 14:05:08

AW: Image per PHP mit Session-Daten erstellen
 
Hallo und willkommen hier im Forum.


Hast Du Dir mal die Werte in der bild.php anzeigen lassen?
Kommen die richtigen Werte an?
Hast Du für die (reine) Bildausgabe den richtigen Header gesetzt?
Wo kommt $black / $diagramm her?

JJMcClure 03.10.2017 14:31:33

AW: Image per PHP mit Session-Daten erstellen
 
Hallo vt1816!

Vielen Dank für die rasche Antwort.

Nach wirklich zahlreichen Tests komme ich zum Ergebnis, dass die SESSION-Daten nicht in der bild.php "ankommen". Ich habe versucht, eine Text-Datei zu übergeben und in der Grafik auszugeben - hat auch nicht funktioniert.

Der Quelltest der bild.php lautet wie folgt:

<?php
session_start();
header("Content-type: image/png");
$imgWidth = '800';
$imgHeight = '500';
$diagramm = imagecreate($imgWidth, $imgHeight);
$colorWhite = imagecolorallocate($diagramm, 255, 255, 255); #Hintergrund
$colorGrey = imagecolorallocate($diagramm, 210, 210, 210);
$colorBlue = imagecolorallocate($diagramm, 0, 50, 255);
$colorblack = imagecolorallocate($diagramm, 0, 0, 0);

// @@@@@@@@@@ RAHMEN UM DAS BILD @@@@@@@@@@

imageline($diagramm, 0, 0, $imgWidth, 0, $colorblack); #oben
imageline($diagramm, $imgWidth-1, 0, $imgWidth-1, $imgHeight-1, $colorblack); #rechts
imageline($diagramm, 0, $imgHeight-1, $imgWidth, $imgHeight-1, $colorblack); #unten
imageline($diagramm, 0, 0, 0, $imgHeight, $colorblack); #links

// @@@@@@@@@@ ERSTELLEN EINES RASTERS @@@@@@@@@@

$pxRaster = '20'; #Größe des Rasters
$pxWidth = round($imgWidth / $pxRaster, 0);
for($i=1; $i<$pxWidth; $i++){
imageline($diagramm, $i*$pxRaster, 0, $i*$pxRaster, $imgHeight, $colorGrey); #vertikal
imageline($diagramm, 0, $i*$pxRaster, $imgWidth, $i*$pxRaster, $colorGrey); #horizontal
}

// @@@@@@@@@@ ZEICHNEN DES DIAGRAMMS @@@@@@@@@@

$wert = $_SESSION['Ergebnisdaten'];
$countBalken = count($wert);
for($i=0;$i<$countBalken;$i++){
if($maxHeight < $wert[$i]){
$maxHeight = $wert[$i];
}
}
$dynWidth = round(($imgWidth-2) / ($countBalken-1), 0);
@$dynHeight = ($imgHeight-1) / $maxHeight;
for ($i=0; $i<$countBalken; $i++){
$aktNewSize = @round($dynHeight * $wert[$i]);
$aktNewSize2 = @round($dynHeight * $wert[$i+1]);
if($i+1 < $countBalken){
imageline($diagramm, $i*$dynWidth, ($imgHeight-$aktNewSize),
($i+1)*$dynWidth, ($imgHeight-$aktNewSize2), $colorBlue);
}
}

// @@@@@@@@@@ AUSGABE DES BILDES @@@@@@@@@@

imagepng($diagramm); #ausgeben des Bildes als PNG
// imagedestroy($diagramm); #freigeben und zerstören des Bildes

?>


Vielen Dank für Deine Bemühungen!

Viele Grüße aus der Pfalz,

Markus

JJMcClure 03.10.2017 18:38:20

AW: Image per PHP mit Session-Daten erstellen
 
Ich habe es gefunden! Oh Mann, kleine Unachtsamkeit, große Wirklung!!! Habe vergessen, die Session vor dem Aufruf der "bild.php" zu beenden. Habe "session_write_close();" zuvor eingefügt und jetzt funzt es.

vt1816 04.10.2017 06:57:21

AW: Image per PHP mit Session-Daten erstellen
 
Prima wenn es jetzt funktioniert ...


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:09:52 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.