image Darstellungsproblem!

Funjoy

Erfahrenes Mitglied
Hallo,

Ich habe ein merkwürdiges Problem ich habe ein PNG Image geschrieben mit ein Code der auf das PNG Bild geschrieben werden soll. So es klappt zwar alles aber ab und zu kann er das Bild nicht darstellen, und im IE kommt das öfters vor.

hier mal mein ganze image.php Datei.

PHP:
<?php
/************************************************************************/
/* PingPong Manager (Vereinsverwaltungs Script)							*/
/* ============================================ 						*/
/*																		*/
/* Das Projekt ist Opensource d.h. Sie können jede veränderungnen		*/
/* vornehmen. Jede veränderung basiert auf eigene Gefahr.				*/
/*																		*/
/* Das Projekt PingPong Manager wurde von Thomas Bowe entwickelt.		*/
/*																		*/
/* Es dürfen keine Funktionen kopiert und an dritte Personen Verkauft	*/
/* werden. Der Autor Übernimmt keine Haftung bei nicht					*/
/* einwandfreier Funktion!          					  				*/
/*																		*/
/* @link: http://www.phpline.de											*/
/* @copyright: 2005 by phpline.de										*/
/* @author: Thomas Bowe <webmaster@phpline.de>							*/
/* @version: 1.0.0														*/
/************************************************************************/
/* Fehler ausgeben
*  <1> Alle Fehler ausgeben egal ob Fatal errors oder Notice Warnungen.
*/
	error_reporting(E_ALL);

/* Session Fuktionen.
*  <1> Session starten.
*/
	session_start();

/* Klassen die Wichtig sind laden.
*  <1> Die Template- parse Klasse Smarty.
*  <2> Blätterfunktions Klasse.
*  <3> Datenbank- Klasse MySQL.
*/
	include("klassen/smarty/Smarty.class.php");
	#include("klassen/klasse.seitenaufteilung.php");
	include("klassen/klasse.mysql.php");

/* Steuerungsdateien.
*  <1> Config Datei.
*  <2> Globale Datei.
*  <3> Funktions Datei.
*/
	include("config.php");
	include("global.php");
	include("funktion.php");
	
/* Bilder
*  <1> Sicherheitsbild ausgeben.
*/
	if(isset($_GET['pfad']) && $_GET['pfad'] == "sicherheitsbild") {
		$schriftart = "/templates/image/schriftarten/Goudystof";
		$schriftfarbe = "#ff6262";
		
		$code = code_erstellen(6);
		$_SESSION['code'] = $code;
		
		$bild = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/templates/image/sicherheitsbild.png");
		
		$rgb = hexcode_to_rgb($schriftfarbe);
		$schrift= imagecolorallocate($bild,$rgb[0],$rgb[1],$rgb[2]);
		
		imagettftext($bild, 9, 0,3,15, $schrift,$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).$schriftart,$_SESSION['code']); 
		
		header("Content-type: image/png"); 
		imagepng($bild);
	}
?>

habe ich da was Falsch gemacht bzw. ne header angabe vergessen?

MfG Funjoy

Ps. Bei den Includes kommt keit Output vor :)
 
habe ich da was Falsch gemacht bzw. ne header angabe vergessen?

Ja

Fraglich aber wie das überhaupt dargestellt werden konnte.

Dein header muss in die erste Zeile deines Codes.

PHP:
header("Content-type: image/png"); 
/*
.....
Code
*/
imagepng($bild);
 
Dein header muss in die erste Zeile deines Codes.
Wo hast du denn diese Information her? Um ein HTTP-Header-Feld zu setzen, ist nur notwendig, dass vorher kein eigentlicher Inhalt gesendet wurde.

Zum Problem: Klassifiziere die Ausgabe mal als Klartext (text/plain). Vielleicht gibt es zwar eine Fehlermeldung, die jedoch aufgrund der Klassifizierung als PNG nicht erkennbar ist.
 
Hallo erstmal Danke

@Gumbo:

Danke das Hilft aber nur bedingt wenn ich immer mal die Seite Aktualisiere Kommt Folgendes raus (siehe Anhänge)? Könte das auch an meinen lokalen Server liegen?

MfG Funjoy
 

Anhänge

  • screen_ie.png
    screen_ie.png
    83,6 KB · Aufrufe: 68
  • screen_ie_geht.png
    screen_ie_geht.png
    85,5 KB · Aufrufe: 69
Wenn es als Klartext klassifiziert ist, musst du es natürlich direkt öffnen und nicht in ein HTML-Dokument einbetten.
 
Hallo,

Kannst du mir das mal in PHP darstellen? Den ich will es ja auf einer xhtml Seite darstellen sonst würde mirt das ja nix bringen.

MfG Funjoy
 
Mit direkt öffnen meine ich, dass du die Ressource der Grafik direkt aufrufen sollst, indem du den URL in das Adressfeld eingibst und Enter drückst.
 
Und was habe ich davon? Also Ich habe das gmeacht und fordert er mich auf die Datei abzuspeichern! Aber es soll ja auf den html dokument angezeigt werden für das Formualr und das habe ich wvia img Tag aufgerufen das Image!

MfG Funjoy
 
Der Direktaufruf zusammen mit der Klassifizierung als Klartext soll dir helfen herauszufinden, ob es eine Fehlermeldung gibt, die bloß aufgrund der Klassifizierung als PNG nicht angezeigt wird.
 
hmm also wenn ich den code:

PHP:
<?php
/* Bilder
*  <1> Sicherheitsbild ausgeben.
*/
	if(isset($_GET['pfad']) && $_GET['pfad'] == "sicherheitsbild") {
		$schriftart = "/templates/image/schriftarten/Goudystof";
		$schriftfarbe = "#ff6262";
		
		$code = code_erstellen(6);
		$_SESSION['code'] = $code;
		
		$bild = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/templates/image/sicherheitsbild.png");
		
		$rgb = hexcode_to_rgb($schriftfarbe);
		$schrift= imagecolorallocate($bild,$rgb[0],$rgb[1],$rgb[2]);
		
		imagettftext($bild, 9, 0,3,15, $schrift,$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).$schriftart,$_SESSION['code']); 
		
		header("Content-type: text/plain"); 
		imagepng($bild);
	}
?>

so schreibe und die Datei image.php über mein Browser Öffne werde ich aufgefordert die Datei Abzuspeichern! D.h. Ich kann nicht erkennen ob er mir einer Fehlermeldung ausgibt oder nicht.

Mach ich aber die header angabe image/png dann bekom ich im FireFox die Meldung (nach mehrmaligen Reload) Die Grafik "http://localhost/tsvmarzahnerfuechse-tt.de/image.php?pfad=sicherheitsbild&PHPSESSID=47a5e8a7d5c2b723dd25fd47e5e3629e" kann nicht angezeigt werden, weil sie Fehler enthält.

bei dem IE kommt:
Code:
<br />
<b>Notice</b>:  Uninitialized string offset:  36 in <b>C:\apachefriends\xampp\htdocs\tsvmarzahnerfuechse-tt.de\funktion.php</b> on line <b>30</b><br />
<br />
<b>Notice</b>:  Uninitialized string offset:  36 in <b>C:\apachefriends\xampp\htdocs\tsvmarzahnerfuechse-tt.de\funktion.php</b> on line <b>30</b><br />
‰PNG


IHDRdô¢Â¡IDATxœíXÝOTGÿ?{—]`ùPYjµ?¢É–ú`?Òbƒµ&b£M¬±¾òâÇK_Ú¿BM|Óø¢©/5¥		F[‰ImCø…£uK,,{Y–?Ýùõafî½ØHÄ⃿„0;sæÜ9gÎçÈáÇñχ€'ÚjÀŒ@*´ó¡HP)C¢AER–ZO’T
 R I((*Ë\‘P†:Ä›T$ÊDOëÈeT€3gÎ8 O3ÔÿBÑKzFñw„"½Ÿ)IJ?$ÜÒ‡¸Y&B:
掗
ZY HXý'E§õo— Eß<)$Ú:¬bµr@k¤v¿&c5DÑ´JõšQºž×sÁ=-#Œ²@bÅÕ'Ó‚8ü=Rì vѧç;?€þæ"r	ó0œÅÞß²ÃñG¢Ï'aï°F"Ƥ|E„~…=†¬Ïš?]÷é‰@UÝIZ2¾îðJXVD-;yÒqÇÇýeåº*?kiÉmÛf¬O!”ÞXÈ'¾¿0[]=ÖºK`,Qû*IŠÔ?;Wây±t:üá|4:™HŒnØðOã»eKHbmOO4ãÕÜŠäó>}®¢"šÍº$€©x¼çС—ª—¬ÿ	rÇŽ1?[ýíwþòl2éµµÅÏŸ¯ìè`$2ÙÜì{ªŸ8Wýp1>0`fõjoãÆ?™Hõ𫃄Úp¢Ý7ãL]Ý£––·;;.]r§¦þ~o“µ:!øxËf%“ÙUÃÃþIþ8x…BùØØÚ7ÞúŸÔSAT¸‘ùD“»vˆõôbÊ	¢«º»+úû5YMg§ëyáœi‡:²‡wº¦æþ§»¬e¿ÐUH‘ëI>×?L$†ZZ2‰ÄRÉ¿(8Ä&%[ƒ(”—0îe'DR©ªË—}BwffÕ•Ëáø¥Kµ…¢3Iæc1kÖ͇ƒÜ<D''ÍN×½±oß"Å\D0?Dƒ‚²ß?kÚ"ô#=HÄûzSG?Öž=[âyš¸âæ§R¨(·	_(¦fpB¬«<Øxê”
¹+žlÝj¿,A
˜‡õÝÝÕ©E~mk[2é	ÐÉÉTNs,«dppE{{¬¯?ýåSÍ[uI¥m¥làNvÓæ|míÓvJUõ÷Yi…†\æØËx}ýÃ?;•ë–¥Ó?.D</lÒ²?qÝÞ³çRK&úâa"”õ°9ETeeúøqÛ	ùÅ	T\½êd³ŒFQ(„·ÄÿýèCPÔ刲iÓEÆ“I)Öuu•§Ó?/ÞÙ¿?_ZÒÄú]¿~üöí•øà„ÆÏ*üÂE¬<}::4I§Sß|?:räIq+{üÄ™È2(¯žça,™,ˆ(ËdÖuu¡Pë½ÏòÆ›{÷.RÀ¥„ÛÔÔÔÚÚª=1öcGôR—;:¬OOG†‡K>˜i|Ç?î¹d²òÚ5™™É6½O òúõòP. ôÑ£H&“«¯ðŸ:Þ¼rÅ??õiJ<¯êÞ½ò‘ºnlb@©çÕÞº•®«Ë—•6üüËÚ?ûªR©ðM&îÞ¬khxyêøôööj7Ô±•ÓŸíÁð‹€íî”î×ÄãéÏ÷)J	à57?7`¶(ý6AågBbx÷§$!Žy¸ðßHÿ?Áðyûv›HøLs_ø½!`»•¹ñU$Èë?DbÃ!°Š€ X6ÀqÄqB½lÿÃâIÌ%yÅ`‹RS€]F‡K›ŠkcŽ!RšfÇ>ÔÐR™,k?âcÛ¿€Ã?¯DKèÃ>ÑÐ/˜MPfP~…(MûkZì@GX4ü¢¯t?ÀjDì+ÍÛ!cp\0Æ/#äõ³òóã_Ö“ÞI2Ë¥IEND®B`‚


MfG Funjoy
 
Zurück