Templates

Stelo

Erfahrenes Mitglied
Hallo,

ich habe mir aus einem Template-Tutorial von ihr einen Code übernommen, der so weit auch funktioniert.

PHP:
<?php
function gettemplate($template,$endung="html")
{
return str_replace("\"","\\\"",implode("",file($template.".".$endung)));
}
function dooutput($template) {
echo $template;
}
?>

PHP:
eval ("dooutput(\"".gettemplate("einstellungen_stecki_form")."\");");

Doch jetzt ist da ein kleines Problem aufgetreten.

Auf einem Webspace, hab ich folgende Ordner:

files/unterordner
html/unterordner1/unterordner2

Meine PHP-Dateien Speicher ich in files und die html Dateien logischer Weise in dem Ordner html.
Wenn ich jetzt diesen eval-Code in eine PHP Datei schreib und da nur den Namen eingebe, klappt es super, WENN sich die HTML Datei im Ordner html/unterordner1 befindet, wenn diese im Unterordner2 ist, kommt eine Fehlermeldung.

Wenn ich jetzt eine PHP Datei in files/unterordner habe und da dieser eval Code auf eine HTML Datei zugreifen soll, die sich auch im files/unterordner befindet, bekomm ich eine Fehlermeldung.
Ist diese HTML Datei dann im Ordner html/unterordner1 funktioniert das aber wieder.

Hat vllt. jemand eine Idee woran das liegt, denn ich gebe in der Funktion na nirgendwo einen Pfad an, und trotzdem scheint er immer nur auf html/unterordner1 zuzugreifen.
 
Ups! Die hatte ich ja ganz vergessen ...

Warning: file(mitglied_table.html) [function.file]: failed to open stream: No such file or directory in /var/www/web46/files/members/template.php on line 4

Warning: implode() [function.implode]: Bad arguments. in /var/www/web46/files/members/template.php on line 4

Und die Datei mitglied_table.html befindet sich auch in files/members
 
Welche Pfandangabe?
Das ist ja mein Problem, ich hab das mit den templates nur ein einem Tut und nirgendwo wird dort eine Pfadangabe gemacht, zu dem ordner wo sich die Templates befinden.
 
Die Pfadangabe zur Datei, die nicht gefunden wird, wird mit dem ersten Parameter der gettemplate()-Funktion übergeben.
 
D.h. ich könnte
PHP:
eval ("dooutput(\"".gettemplate("mitglied_table")."\");");
auch
PHP:
eval ("dooutput(\"".gettemplate("../mitglied_table")."\");");
oder so schreiben?
Oder wie soll ich das verstehen?

Doch wäre das hier doch überflüßig, da sowohl die Datei in der das mit dem eval steht, als uahc die html Datei im gleichen Ordner sind.
 
Naja, aber wenn ich nun den Template Namen so schreib un das Template in dem HTML/unterordner1 hab, funktioniert ja alles, ganz ohne Pfandangabe, egal wo die PHP Datei ist.
Wenn ich jetzt einfach nur die Template Datei in einen anderen ordner verschieb, geht es nicht mehr ...
 
Zurück