PHP Datei gibt was aus obwohl das nicht sein sollte

Chillstrike

Grünschnabel
Hallo zusammen...

ich bin langsam am verzweifeln und konnte leider auch keinen passenden Beitrag finden..

Also ich habe folgendes Problem:

ich habe eine Art Katalog mit Bildern erstellt, der Inhalt wird dynamisch über eine php Datei eingelesen.


Das einlese Skript wird über include() einfach auf der Hauptseite eingebunden, jedoch schreibt genau an dieser Stelle, das skript scheinbar etwas in meinen Quelltext: 

Die Frage was ist das und wo kommt es hier.. das Einleseskript enhält keine ausgabe wie Echo oder so...


Wäre für eure Hilfe echt dankbar :-)


Hier ist das Skript das die Sachen einliest:

PHP:
<?
# Test auf Existenz der Textdateien
function istda () {

$handle = opendir(".");
    if ($handle) {
        while ($txts = readdir($handle)) {
		   		if (preg_match("(.txt|.TXT)",$txts)) {
					$check += 1;
				}
		}
	}
closedir($handle);
		   if ($check == 6) {
		   $files = True;
		   } else {
		   $files = False;
		   exit();
		   }
return $files;				

}


# Auslesen der angeforderten Datei und Ausgabe in einem Array

function kategorie($cat) {
	$handle = opendir('.');
		if ($handle) {
			$dat = fopen($cat, 'r');
			}
			
		$anzahl = file($cat);
		$anzahl1 = count($anzahl)-1;
			
			while (!feof($dat)) {
				$artikel = fgets($dat,500);
				$zeile[] = $artikel;
				}
				
		closedir($handle);
return $zeile;
}

# Übergabe an Ausgabescript

$kontrolle = istda();

if (isset($_GET['kategorie'])) {
	$dum = $_GET['kategorie'];
	switch ($dum) {
		case 'kinder':
			$stitel = 'Kostüme für Kinder';
			break;
		case 'maenner':
			$stitel = 'Kostüme für Männer';
			break;
		case 'frauen':
			$stitel = 'Kostüme für Frauen';
			break;
		case 'wig':
			$stitel = 'Perrücken';
			$dum = 'perruecken';
			break;
		case 'schminke':
			$stitel = 'Schminke';
			break;
		case 'zubehoer':
			$stitel =  'Zubehör';
			break;
		}
	} else {
	$dum = 'kinder';
	$stitel = 'Kostüme für Kinder';
	}
	
	$stitel = 'Katies Faschingswelt - '. $stitel;

if ($kontrolle = True) {
	$kat = $dum. '.txt';
	$zeile = kategorie ($kat);
	$i = 0;
	foreach($zeile as $tmp) {
				$zeile1 = explode(';',$tmp);
				$titel[$i] = $zeile1[0];
				if($zeile1[1] != 'aa') {
					$preis[$i] = $zeile1[1]. ' €';
				} else {
					$preis[$i] = 'Preis auf Anfrage';
				}
				$bild[$i] = 'bilder/'.$zeile1[2];
				$tnbild[$i] = 'bilder/tn/'.$zeile1[2];
				$i++;
				}
	
	$anzahl = count(file($kat));
	
	$tmp = $anzahl / 3;
	$tmp1 = $anzahl % 3;
	$dump = ceil($anzahl / 3);
	
	if ($tmp < 1) {
		$spalten = 1;
	} else {	
		if ($tmp1 == 0) {
			$spalten = $tmp;
		} else if($tmp1 == 1) {
			$spalten = $dump;
			$lzeile = 1;
		} else if($tmp1 == 2) {
			$spalten = $dump;
			$lzeile = 2;
		}
	}
	
} 
?>

Der Chill
 
Kommt bei mir definitiv nicht vor, wenn ich es per include() einbinde...

Scheint also eher ein Fehler im anderen Skript zu sein.
 
Kommt bei mir definitiv nicht vor, wenn ich es per include() einbinde...

Scheint also eher ein Fehler im anderen Skript zu sein.

hmmm... also hier noch mal der Teil der anderen Datei:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
					  "http://www.w3.org/TR/html4/frameset.dtd">
<? 
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; 
?>
<head>
<? include ('read.php'); ?>
<title><? echo $stitel; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
...

ich sehe hier keinen Fehler...

thx
 
Zuletzt bearbeitet:
Dreht dein Apache durch?
Will dein Browser sowas wie &auml; statt "ä" ? - erreichst du mit htmlspecialchars($text)

Nur mal so zwei Gedankenfürze von mir
 
Hallo :-)

Also mal ein kleines Update... Mein Problem, wie ZodiacXP richtig erkannt hat, mit den Umlauten habe ich gelöst, zumindest beim IE. Nur bei Firefox wird weiterhin das Euro Zeichen nicht richtig erkannt.

Aber es hat sich in diesem Zusammenhang ein Problem ergeben: Nämlich mit der GET Übergabe von Variablen die einen Umlaut enthalten. Beim Einlesen und in der Übersicht wird alles richtig dargestellt aber sobald ich diese Variablen per GET übergebe macht PHP seltsame Zeichen draus.

Frage: Gibt es eine Möglichkeit Zeichen wie: "ü" (soll ein ü darstellen) zurückzuwandeln?


Außerdem besteht weiterhin das Problem das mein Auslesescript, nach dem / oder an der Stelle wo der "include" steht eine seltsame Zeichenfolge zurückgibt. Diese: 

Vielen Dank für eure Anregungen.

Wenn jemand mal die Skripte / Seite komplett braucht einfach ne PM schicken dann gibts die Dateien.

Viele Grüße

Der Chill
 
Mir scheint, deine PHP-Skriptdatei ist UTF-8-kodiert und zusätzlich mit einer BOM versehen, wird jedoch mit einer anderen Kodierung (vermutlich einer 8-Bit-Kodierung wie für den ISO-8859-1-Zeichensatz) interpretiert. Speichere die Skriptdatei einfach ohne BOM, die bei UTF-8 auch nicht notwendig ist.
 
Danke Gumbo!!

Das hat mich echt ein ganzes Stück weiter gebracht. Der Fehler lag wohl darin das ich Spasshalber die Seite mal mit dem neuen Expression Web von MS geöffnet habe. Dieser hat dann wahrscheinlich die Seite mit BOM gespeichert.

Wenn ich jetzt noch die richtige Darstellung des Euro Zeichens hinbekomme, ist alles Super.

Also nochmal Vielen Dank

Der Chill
 
Zurück