Moin,
ich hab glaub ich ein kleines Verständnisproblem, ich hoffe ihr könnt mir helfen.
Ich zimmere gerade unser Intranet neu zusammen und hab 3 Dateien, die ich über include einbinden will:
inc.config.php, inc.header.php und inc.navigation.php
in der inc.navigation.php ist das Nav-Menü (wer hätts gewusst *g*) mit den Links.
Diese Links passen sich jetzt natürlich dem Speicherort der PHP-Seiten an, wenn ich also http://intranet/index.php aufrufe wird die Datei eingebunden und der link auf Unterorder1/index.php funktioniert.
Mach ich das ganze in einem anderen Unterorder (unterordner2) wird aus dem Link: http://intranet/unterordner2/Unterorder1/index.php
was natürlich nicht funzt.
Ich hab mir jetzt eine Funktion geschrieben, die die Slashes im $_Server[SCRIPT_NAME] zählt und dafür ../ ausgibt:
$test_anzahl=substr_count($_Server[SCRIPT_NAME],"/");
$rel_path="";
for($i=2;$i<=$test_anzahl;$i++)
$rel_path.="../";
Damit kann ich mir jetzt den Pfad rückwärts wieder aufbauen und komme wieder zu den Includes im Root-Verzeichnis.
Meine Frage nun: Geht das nicht einfacher?
Ich will ja eigentlich nur mein Document_Root wissen/angeben. Die Links im Nav-Menü könnte man ja noch absolut angeben als (/unterordner1/index.php) aber das funktioniert bei den Includes ja nicht mehr.
Und da auf dem Webserver noch ne menge anderer Webseiten liegen, will ich auch nicht in der php.ini den Include_path ändern (Webserver ist ein IIS 6.0).
Jetzt hab ich wahrscheinlich bisl zu viel geschrieben, ich hoffe ihr versteht mein Problem.
Eigentlich muß es dafür doch eine einfache Lösung geben, ohne das Navi-Menü für jeden unterordner neu anzulegen.