eval(); Problem bei der Ausgabe

Schänk

Mitglied
Moin zusammen

Ich hab vorher das Forum durchsucht und zu diesem Problem leider keine passende Lösung gefunden.

Ich möchte mit eval(); HTML Code ausgeben, welcher PHP Code enthält. Sollte mit dieser Funktion eigentlich kein Problem sein. Nur gibt mir der Browser solche Fehler aus:

Parse error: parse error, unexpected '<' in c:\apache\htdocs\sardastisch\index.php(17) : eval()'d code on line 1

Parse error: parse error, unexpected '<' in c:\apache\htdocs\sardastisch\index.php(17) : eval()'d code on line 1

Parse error: parse error, unexpected '<' in c:\apache\htdocs\sardastisch\index.php(17) : eval()'d code on line 1

Parse error: parse error, unexpected '<' in c:\apache\htdocs\sardastisch\index.php(17) : eval()'d code on line 1

usw....

Hier erfolgt die Ausgabe mit dem Funktionsaufruf
HTML:
foreach($template->fillTemplate($showTemplate) as $value) {
	$stringSearch	= array("&lt;","&gt;","&quot;","amp;");
	$stringSet	= array("<",">","'","");
	for($x=0;$x<4;$x++) {
		$templateAusgabe = str_replace($stringSearch,$stringSet,$value);
	}
	eval($templateAusgabe);
}

Und hier die Klassenfunktion
HTML:
<?php

class template {
	var $sql;
	var $templateAusgabe;

	function template(&$SQL, $ausgabe) {
		$this->sql				= &$SQL;
		$this->templateAusgabe	= $ausgabe;
	}

	function loadTemplate($templateName) {

		$fileInhalt = file("templates/".$templateName.".php");

		return $fileInhalt;
	}

	function fillTemplate($fileInhalt) {

		$count = count($fileInhalt);
		for($x=0;$x<$count;$x++) {
			$templateInhalt = htmlspecialchars($fileInhalt[$x]);
			if(eregi("###(.*)###",$templateInhalt,$reg) == true) {

				$queryPlaceholder = "SELECT placeholderOutput FROM placeholder ";
				$queryPlaceholder.= "WHERE placeholderName='".$reg[0]."'";
				$this->sql->query($queryPlaceholder);
				$showOutput = $this->sql->fetcharray();

				$templatePlaceholder = ereg_replace($reg[0],$showOutput['placeholderOutput'],$templateInhalt);
				$this->templateAusgabe[$x] = $templatePlaceholder;
			}
			else {
				$this->templateAusgabe[$x] = $templateInhalt;
			}
		}

	return $this->templateAusgabe;
	}
}

?>


Funktioniert soweit alles wunderbar. Wenn ich den Code per echo ausgebe zeigtes mir im Quelltext im Browser den PHP Code richtig an. Mit eval(); wollte ich diesen nun einfach umwandeln, aber nix gewesen :(

Hat hier jemand nen Rat?
 
Zuletzt bearbeitet:
[phpf]eval[/phpf] erwartet zunächst einmal PHP-Code. Sollte HTML-Code ausgegeben werden, muss zuerst der PHP-Modus durch ?> verlassen werden.

Die Konsultierung der gelinkten Funktionsreferenz sollte Licht ins Dunkel bringen.

Sven
 
Zuletzt bearbeitet:
Hast da etwas umständlichen code, naja ich hatte das prob auch bei meiner tpl funktion, und ich würd dir einfach mal raten es mit addslashes zu versuchen ;) bei mir hatte es geholfen, und ich hatte ca. die gleiche Fehlermeldung!
 
D3stroyer hat gesagt.:
Hast da etwas umständlichen code, naja ich hatte das prob auch bei meiner tpl funktion, und ich würd dir einfach mal raten es mit addslashes zu versuchen ;) bei mir hatte es geholfen, und ich hatte ca. die gleiche Fehlermeldung!

Jetzt bekomm ich noch mehr Fehlermeldungen :eek:
Hab die Variabel bevor ich sie mit eval(); durch addslashes(); laufen lassen.
Bringt leider nichts
 
Zurück