[HTML/PHP] PHP-Code wird nicht geparst

M

Mr. Snoot

Gast
Hio,

ich habe auf meiner Seite zwei Dateien, in denen (korrekt) eingebundener PHP-Code nicht geparst wird. Auf dem Server läuft definitiv PHP und der Code stimmt auch, da er in anderen Dateien funktioniert :)

Der einzige Unterschied, diese zwei Dateien werden nicht direkt aufgerufen, sondern von einem Suchscript (Anhang anzeigen suche.zip) aufgerufen.

Siehe ab Zeile 84 & 99:
PHP:
// Template laden
$tmpl = join('', file('./tmpl/search_error.php'));

..

$tmpl = join('', file('./tmpl/search_result.php'));
In diese zwei Templates würd ich gern andere Dateien per include einbauen, aber hier wird der PHP-Code eben nicht geparst, sondern steht so wie er ist im Quelltext der Datei.

Lässt sich as irgendwie beheben?
 
Zuletzt bearbeitet:
Im Code wird $tmpl auch nicht geparst, sondern mit echo() ausgegeben. Deshalb wird deine include() Anweisung auch nicht geparst, sondern direkt ausgegeben. In den beiden Template-Dateien dürfte eigentlich kein PHP Code stehen. Bin mir aber nicht sicher, da ich das Skript eben nur überflogen habe.

Was genau willst du denn in die Templates einbauen?
 
Diversen Code :)

Konkret, alles was hier links und rechts im Rand steht (Menü, Suche, Lexikon, News usw.).

Das ganze Zeug wird halt sonst immer per Include eingebunden, und wenn das nicht geht müsste logischerweise der ganze Code extra in die Dateien selbst.


edit: in den Templates steht sonst auch kein PHP-Code (sind im Original auch nur htm-Dateien).
 
Zuletzt bearbeitet:
Du müsstest eigentlich den Inhalt von $tmpl in eine extra Datei speichern und dann diese Datei mit include() einbinden, so wird der Code dieser Datei geparst.

PHP:
$file = fopen ("tmpl.php", "w+");
fwrite ($file, $tmpl);
fclose($file);

include("tmpl.php");

unlink("tmpl.php");
fopen
fwrite
fclose
unlink
 
Zuletzt bearbeitet: (Code hinzugefügt)
Noch mal langsam für mich :D

Die Inhalte von search_error.php bzw. search_result.php pack ich wohin und binde das dann wo ein?
 
In die beiden Template Dateien (search_error.php, search_result.php) schreibst du deine include() Anweisungen.
Dann veränderst du die suche.php folgendermaßen.

Überall wo echo $tmpl; steht ersetzt du das mit:
PHP:
$file = fopen ("tmpl.php", "w+");
fwrite ($file, $tmpl);
fclose($file);
include("tmpl.php");
unlink("tmpl.php");
Damit erreichst du, dass der Inhalt von $tmpl geparst wird, anstatt nur ausgegeben.

//edit
Kannst den Dateinamen (tmpl.php) natürlich auch ändern, wenn diese Datei bereits exisitert.
 
Zuletzt bearbeitet:
Alles klar, werds gleich mal probieren.


edit: läuft einwandfrei, vielen Dank. :)
 
Zuletzt bearbeitet:
Zurück
Oben