Problemen met imagepng en header
Ik heb een probleem met mijn php script die een flight status toont, in png vorm.
Ik heb ook al hulp gevraagd op een ander forum, maar die konden me niet helpen. Aangezien de header erin zit. De commands en dergelijke..
Het gaat om de volgende stuk tekst:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
//header('Content-Type: image/png');
require $cfg_link;
$con = mysql_connect($host, $username, $password) or die("Cant connect! - " . mysql_error());
mysql_select_db($database, $con) or die("Cant select db! - " . mysql_error());
$query = mysql_query("SELECT COUNT(IDPilot) AS nof, AVG(LandingVS) AS AvgLdgVS, AVG(LandingIAS) AS AvgLdgIAS, SUM(DistanceFlight) AS TotalFlyDist, SUM(BlockTime) AS TotalHrs FROM pirep WHERE IDPilot='" . $_GET['id'] . "' ", $con) or die("Error! - " . mysql_error());
$pirep = mysql_fetch_array($query); //The PIREP query
$queryy = mysql_query("SELECT * FROM pilots WHERE IDPilot='" . $_GET['id'] . "' ", $con) or die("Error! - " . mysql_error()); $pilot = mysql_fetch_array($queryy); //The Pilot Query
$line1 = "Pilotname: " . $pilot['FullName'] . " (ID: " . $pilot['IDPilot'] . ")";
$line2 = "Country: " . $pilot['Country'];
$line3 = "Nbr Flights: " . $pirep['nof'];
$line4 = "Avg Landing VS: " . $pirep['AvgLdgVS'];
$line5 = "Avg Landing IAS: " . $pirep['AvgLdgIAS'];
$line6 = "Total Dist Flyed: " . $pirep['TotalFlyDist'] . " NM's";
$line7 = "Total Time Flyed: " . $pirep['TotalHrs'];
// /*
$img = imagecreatefrompng($bg_img_link);
$txtw = imagecolorallocate($img, 255, 255, 255);
$txtb = imagecolorallocate($img, 0 , 0, 0);
imagestring($img, 5, 35, 20, $line1, $txtw);
imagestring($img, 5, 35, 35, $line2, $txtw);
imagestring($img, 5, 35, 50, $line3, $txtw);
imagestring($img, 5, 35, 65, $line4, $txtw);
imagestring($img, 5, 35, 80, $line5, $txtw);
imagestring($img, 5, 35, 95, $line6, $txtb);
imagestring($img, 5, 35, 110, $line7, $txtb);
imagestring($img, 3, 2, 205, "Flights Of Brian - Private System", $txtb);
imagepng($img);
imagedestroy($img);
// */
/*
print $line1; print "<br>";
print $line2; print "<br>";
print $line3; print "<br>";
print $line4; print "<br>";
print $line5; print "<br>";
print $line6; print "<br>";
print $line7; print "<br>";
*/
header("Location: members/" . $pilot['IDPilot'] . "-pi.PNG");
?>
//header('Content-Type: image/png');
require $cfg_link;
$con = mysql_connect($host, $username, $password) or die("Cant connect! - " . mysql_error());
mysql_select_db($database, $con) or die("Cant select db! - " . mysql_error());
$query = mysql_query("SELECT COUNT(IDPilot) AS nof, AVG(LandingVS) AS AvgLdgVS, AVG(LandingIAS) AS AvgLdgIAS, SUM(DistanceFlight) AS TotalFlyDist, SUM(BlockTime) AS TotalHrs FROM pirep WHERE IDPilot='" . $_GET['id'] . "' ", $con) or die("Error! - " . mysql_error());
$pirep = mysql_fetch_array($query); //The PIREP query
$queryy = mysql_query("SELECT * FROM pilots WHERE IDPilot='" . $_GET['id'] . "' ", $con) or die("Error! - " . mysql_error()); $pilot = mysql_fetch_array($queryy); //The Pilot Query
$line1 = "Pilotname: " . $pilot['FullName'] . " (ID: " . $pilot['IDPilot'] . ")";
$line2 = "Country: " . $pilot['Country'];
$line3 = "Nbr Flights: " . $pirep['nof'];
$line4 = "Avg Landing VS: " . $pirep['AvgLdgVS'];
$line5 = "Avg Landing IAS: " . $pirep['AvgLdgIAS'];
$line6 = "Total Dist Flyed: " . $pirep['TotalFlyDist'] . " NM's";
$line7 = "Total Time Flyed: " . $pirep['TotalHrs'];
// /*
$img = imagecreatefrompng($bg_img_link);
$txtw = imagecolorallocate($img, 255, 255, 255);
$txtb = imagecolorallocate($img, 0 , 0, 0);
imagestring($img, 5, 35, 20, $line1, $txtw);
imagestring($img, 5, 35, 35, $line2, $txtw);
imagestring($img, 5, 35, 50, $line3, $txtw);
imagestring($img, 5, 35, 65, $line4, $txtw);
imagestring($img, 5, 35, 80, $line5, $txtw);
imagestring($img, 5, 35, 95, $line6, $txtb);
imagestring($img, 5, 35, 110, $line7, $txtb);
imagestring($img, 3, 2, 205, "Flights Of Brian - Private System", $txtb);
imagepng($img);
imagedestroy($img);
// */
/*
print $line1; print "<br>";
print $line2; print "<br>";
print $line3; print "<br>";
print $line4; print "<br>";
print $line5; print "<br>";
print $line6; print "<br>";
print $line7; print "<br>";
*/
header("Location: members/" . $pilot['IDPilot'] . "-pi.PNG");
?>
Aangezien dit script, het plaatje niet toont. Maar wel kan tonen, via een output heb ik een output erop gezet. Maar om ruimte te besparen, zou ik graag dit intern laten zien. via de php file dus. En ter informatie.. Dit is een combinatie van php en mysql.
En ik weet, de header en dergelijke zijn op dit moment, gemarkeerd als opmerking maar dat is expres. Zodat er geen problemen zouden voorkomen.
Ik hoop dat iemand mij kan helpen..
Groet,
Brian
P.S.
Ik ben sinds net geregistreerd dus excuses als dit het verkeerde forum is.
Gewijzigd op 05/12/2011 21:28:42 door Brian T
Brian, zet ff je code tussen code en /code tussen []
@Ger: Heb ik nu gedaan!
Check! :D
wat ik zover kan zien is dat $bg_img_link nregns vandaan komt
Gewijzigd op 05/12/2011 21:42:11 door Brian T
Met header("Location: ...") stuur je de pagina door. Dus het zou best kunnen zijn dat je plaatje wel gemaakt wordt maar dat je het niet ziet omdat je geredirect wordt.
Deze redirect heb ik er ingemaakt aangezien de image niet wilde komen.
haal die eens weg?
Als ik de header en dergelijke daar laat. Zonder de redirect en de // tekens.
Dan krijg ik de error, van firefox;
De afbeelding “http://localhost/pi-banner.php?id=1000” kan niet worden weergegeven, omdat deze fouten bevat
Maar het plaatje werkt wel als deze, via imagepng output, naar een file wordt geschreven.
Vandaar dat ik hier om hulp vraag.
Groet,
Brian
Gewijzigd op 05/12/2011 21:52:12 door Brian T
http://php.net/manual/en/function.imagepng.php. Als je dat perse wil dan moet je bij imagepng() een tweede parameter meegeven om de locatie te krijgen en dan daarna naar exact die locatie verwijzen in de redirect.
Zijn de locaties wel correct? Ik zou het gewoon meteen outputten, niet ergens in een bestand zetten en daarna daarnaar verwijzen. Dan hoef je die laatste redirect niet te doen. Zie Het punt is.. Ik wil het, in PHP laten vertonen. Maar firefox laat dus deze melding zien. En het png plaatje, werkt wel als ik deze via dit php bestand, laat schrijven (de 2é parameter van imagepng dus) naar een file. Oftewel, in PHP, geeft firefox problemen. En als ik het png plaatje zelve bekijk, is er geen probleem.
Bovenaan:
Zorg er overigens voor dat je ALLEEN het plaatje output, niets anders (lege regel boven
En dat van extras. Dat is bij deze niet het geval.
Ik heb net eens geprobeerd met een output van alleen de tekens van png.
Hier zag ik visueel, geen html. Enkel de hele code van dat png bestand.
En in de bronweergave, alleen een server stukje. Maar die krijg ik niet weg.
Maar ik nog een ander image script heb, die wel werkt. Dus aan html kan het ook niet liggen.
Gewijzigd op 05/12/2011 22:40:45 door Brian T
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
ob_start();
imagepng($img);
$img_bin = ob_get_contents();
ob_end_clean();
echo $img_bin();
?>
ob_start();
imagepng($img);
$img_bin = ob_get_contents();
ob_end_clean();
echo $img_bin();
?>
Gewijzigd op 06/12/2011 09:39:42 door Ger van Steenderen
Maar ik houdt het anders toch op het huidige systeem.
Aangezien, een ander png script wel werkt.
Iedereen, toch bedankt!.
Groet,
Brian