include und Unterverzeichnisse

Moe_St_Cool

Grünschnabel
Hallo,

beschäftige mich seit kurzem mit PHP und hab da mal ne grundlegende Frage.

Ich bastel mir gerade meine Hompage und habe folgende Struktur:

Im root Verzeichnis liegt meine index.php und meine main.template.php .
Die index.php "includet" einmal die main.template.php und den eigentlichen Inhalt(zB. forum/forum.php).

Soweit so gut, funktioniert auch alles, jetzt aber zu meinem eigentlichem Problem:

Wenn ich z.B. die forum.php (befindet sich im Ordner forum) in die index.php per include einbinde, befindet sie sich ja dann bei der Ausführung im root Verzeichnis und die relativen Verweise in der forum.php stimmen nicht mehr.
Jetzt muss ich ja einfach nur die Verweise ändern oder absolute pfade nehmen (zB. http://www.meinedomain.de/forum/eintrag.php). Das kann aber ne ganz schöne Fummelarbeit werden, da es ja zb. bei einem Forum ziemlich viele PHP Dateien gibt die wiederum aufeinander zugreifen....

Gibt es keine Möglichkeit der forum.php mitzuteilen, dass sie sich immer noch im Unterverzeichnis forum befindet obwohl sie im root Verzeichnis includet wurde?

Ich hab das ganze beim Forum mit nem variablen IFrame gelöst, funktioniert zwar auch, aber die andere Lösung würde mich auch mal interessieren.

Bin mal gespannt was die Experten unter euch dazu sagen, gibt wahrscheinlich ne banale Lösung und ich hab mal wieder nur Tomaten vor den Augen...:-)
 
Würde mich freuen wenn dazu jemand was sagen könnte, ich habe damit auch schon öfter Probleme gehabt.
 
Naja eine andere Möglichkeit gibt es wahrscheinlich nicht. Du kannst maximal per header auf die Seite forum.php umleiten. Oder die Templates des Forums so verändern, dass Sie vom Root aus her funtktionieren.

In diesem Sinne
 
Dateien die mit include eingebunden werden, werden zuerst im include_path relativ zum gegenwärtigen Arbeitsverzeichnis gesucht und danach im include_path relativ zum Verzeichnis des ausgeführten Skripts. Zur Veranschaulichung: Falls Ihr include_path . entspricht, ist das gegenwärtige Arbeitsverzeichnis /www/. Sie haben über include include/a.php eingebunden und in diesem Skript steht die Anweisung include "b.php". In diesem Fall wird b.php zuerst im Verzeichnis /www/ gesucht und danach im Verzeichnis /www/include/. .......QUELLE:http://php4.globe.de/include/

Es geht ja nicht darum eine 2. Datei per include einzubinden, sondern in diesem Beispiel die a.php verweist auf Dateien wie include/datei.txt um sie mit fopen zu öffnen und zu bearbeiten..
 
Zuletzt bearbeitet:
Wieso soll es denn eine andere Lösung geben? Das includieren bzw. die Verlinkung beruht auf "Natur gesetzten". Die kann man nicht ändern, auch nicht, wenn man den Apache etwas vorgaugeln will.

In diesem Sinne
 
Zurück