dyn. Navigationsmenü mit Includes und Pfadangaben?
Jessy84
- php
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.
hmmm, hmmm, was genau machst du da?
include $_SERVER['DOCUMENT_ROOT']."/xxx/sample.xxx.php";
hmmm, hmmm, was genau machst du da?
include $_SERVER['DOCUMENT_ROOT']."/xxx/sample.xxx.php";
das hab ich schon gefunden, allerdings gibt es diese Variable
$_SERVER['DOCUMENT_ROOT']
nicht bei mir:
Notice: Undefined index: DOCUMENT_ROOT
Hi,
das hab ich schon gefunden, allerdings gibt es diese Variable
$_SERVER['DOCUMENT_ROOT']
nicht bei mir:
Notice: Undefined index: DOCUMENT_ROOT
IIS als Webserver?
MfG ChrisB
Hi,
das hab ich schon gefunden, allerdings gibt es diese Variable
$_SERVER['DOCUMENT_ROOT']
nicht bei mir:
Notice: Undefined index: DOCUMENT_ROOT
IIS als Webserver?
MfG ChrisB
Jepp, wie oben beschrieben, ist ein IIS 6.0...
ich hab jetzt ne weile nach danach gesucht, aber ich hab auch nur workarounds gefunden dazu... am dollsten sind die, die ihre webseite dem webserver hinterheroptimieren, aber das ja quatsch, dann funzt die nie auf nem anderen server...
Hi!
ich hab jetzt ne weile nach danach gesucht, aber ich hab auch nur workarounds gefunden dazu... am dollsten sind die, die ihre webseite dem webserver hinterheroptimieren, aber das ja quatsch, dann funzt die nie auf nem anderen server...
Es ist nun mal so, dass nur bestimmte Werte in der CGI-Spezifikation definiert sind. DOCUMENT_ROOT gehört nicht dazu. Beachte bitte den einleitenden Satz im PHP-Handbuch-Kapitel zu $_SERVER.
Es hat auch niemand behauptet, auf allen Webservern müsse immer alles gleich funktionieren. Auch bei den spezifizierten Werten gibt es Unterschiede zwischen IIS und dem Apachen.
Lo!
Hi!
Es ist nun mal so, dass nur bestimmte Werte in der CGI-Spezifikation definiert sind. DOCUMENT_ROOT gehört nicht dazu. Beachte bitte den einleitenden Satz im PHP-Handbuch-Kapitel zu $_SERVER.
Es hat auch niemand behauptet, auf allen Webservern müsse immer alles gleich funktionieren. Auch bei den spezifizierten Werten gibt es Unterschiede zwischen IIS und dem Apachen.
Lo!
Moin,
das ist mir ja auch klar, ändert aber nichts an meinem Problem bzw. meiner Fragestellung.
Muß ich halt mit meiner kleinen Funktion den Root-Ordner der Webseite selbst rausfinden oder gibt es dafür eine elegantere Lösung, die auf nem IIS läuft?
Auf den Webservern dieser Welt läuft ja nicht nur apache, und da geht es anscheinend ja auch...
Gruß
Jessy