Hallo,
Danke noch mal für die schnelle Beantwortung meiner ersten Frage. Nun bin ich allerdings auf ein neues Problem gestoßen. Es ist etwas kompliziert zu erklären.
Nehmen wir an, ich habe eine Datei
system.php, die verschiedene php-Skripte einbinden soll:
PHP-Code:
// system.php unter "/" (root)
include("includes/lib1.php");
include("includes/lib2.php");
//...
Jetzt kann ich diese system.php wiederum in andere Skripte einbinden. Diese können sogar in anderen Verzeichnissen sein und die includes in der system.php funktionieren immer noch:
PHP-Code:
// beispiel_1.php unter "/" (root)
include("system.php");
PHP-Code:
// beispiel_2.php unter "/xyz/"
include("../system.php");
Diese Unabhängigkeit möchte ich behalten. Wenn jetzt aber z.B. die Datei
lib1.php eine include auf eine datei in einem verzeichis unter dem root-verzeichnis enthält, funktioniert das ganze nicht mehr:
PHP-Code:
// lib1.php unter "/includes/"
include("../templates/template1.php");
beispiel_1.php schlägt nun fehl, das Skript wird nicht gefunden. beispiel_2.php funktioniert, würde es sich jedoch im verzeichnis "/xyz/abc/" befinden, würde es auch nicht funktionieren.
Schwer zu erklären, aber eigentlich ganz einfach und logisch. Die Frage ist aber, wie kann ich die includes in der
lib1.php so schreiben, dass sie immer funktionieren? Meine erste Idee war, einfach eine variable root_path="http://localhost/usw/" anzulegen. Verwende ich diese aber in den includes, kann auf globale Variablen und Objekte nicht mehr zugegriffen werden. Ich denke, dass ist wohl wegen der Sicherheit so. Schließlich könnte der root_path auch
http://www.yahoo.de/ heißen. Dann könnte ich ja quasi auf fremde globale Objekte zugreifen...
Aber wie geht's sonst? Oder sollte ich mir meine komplizierte Ordnerstruktur aus dem Kopf schlagen? Das möcht ich aber nicht gern... :-)