Samuel Vogl: Pfäde mit include

Beitrag lesen

Hallo,

Ich wollte, um meine Homepage leichter verwalten zu können, möglichst alle Sachen, die auf jeder Seite der Homepage angezeigt werden, mit dem Befehl <? include ("xyz") ?> einbauen. Alles kein Problem, jedoch funktioniert das nur, wenn sich die Dateien auch in dem Ordner befinden, in dem sich die inkludierten Dateien befinden.

Nein falsch, hast du schon einmal was von "../" gehört. Sollte eigentlich zum Grundwissen gehören nachdem man das erste Bild in seine Homepage gemacht hat!

Immer wenn ich dann ein /xyz eingebe, denkt das PHP-Script bzw der Server, dass es sich um den absoluten Pfad handelt.

wenn man "/" ein gibt dann ist es ja auch ein absoluter Pfad!

Jetzt zum Problem: Ich möchte die nötigen Dateien, die inkludiert werden (z.B. menu.php) im Hauptordner einer Domain haben (bzw. einem Unterordner, wenn die Domain auch wieder in mehrere Bereiche aufgeteilt ist!). Nun ist es so, dass der Homepageteil viele Unterordner hat z.B. /Haupordner/Unterordner1/Unterordner2/index.php. In der index.php findet sich nun der include-Befehl. Jedoch wirkt dieser nicht, da ja nach einer Datei gesucht wird, die sich in dem Ordner befindet. Wie kann ich es einrichten, dass dennoch z.B. die Datei menu.php aus dem Ordner /Hauptordner/ inkludiert wird, OHNE dass ich noch den absoluten Pfad eingeben brauche?

Ja es geht!

Bzw. geht es, dass ich den absoluten Pfad auch wieder in einer Datei (functions.inc.php) angebe und dann durch ein require in jede Datei bringen kann? Problem dabei ist aber wieder, dass dann wohl die functions.inc.php in jeden Ordner müsste. Oder weiß jemand wie das da auch ohne ginge?

Ja es geht auch ohne!

Sinn soll sein, dass ich im Falle einer Umstrukturierung oder eines Serverumzuges, wo sich der Serverpfad ändert, nicht alle Dateien umschreiben brauche, im Endeffekt werden das nämlich sehr viele sein!

So sollte es sein! Und jetzt zu einer besseren Lösung als einfach "../" zu benutzen:

packe in jeden ordner deiner hompage eine datei z.B. "navi.inc" die folgendes enthält!

<?php

$path = "../../../"; //Pfad der aus dem immomentige Verzeichnis in das Verzeichnis "Haupordner" führt
                     //Also der Pfad ins Heuptverzeichnis deiner Homepage nicht des Servers!

?>

Und dann bei jedem Include:

include("./area.inc");
include($path."functions.inc.php"); //Das ist nun der Pfad zur functions.inc.php im Hauptordner deiner HP