PHP: Include von Datein in Unterverzeichnissen
Eier-mit-Kresse
- php
0 Tabellenkalk0 BaBa0 tk0 robertroth
Hallo,
ich habe ein Problem. Meine Configdatei liegt im http://subdomain.example.com/config.php mein Script das auf die Config zugreifen soll in http://subdomain.example.com/beispiel/index.php . Wie include ich eine Verzeichnisebene tiefer?
require("config.php"); //Kann nicht laufen die Datei ist nicht im Verzeichnis
require(".\config.php"); //Scheint auch nicht includet zu werden...
Oder mache ich einen Syntaxfehler?
Hallo,
Oder mache ich einen Syntaxfehler?
Versuch mal Slash statt Backslash. Außerdem könntest du auch zwei Punkte nehmen.
Gruß
Kalk
Danke Kalk, funktioniert
Wie include ich eine Verzeichnisebene tiefer?
Du meinst höher. Mit
require("../config.php");
Du könntest Du auch absolute Pfadangaben verwenden, dann sparst Du dir die Mühe immer den relativen Pfad von allen Scripten zu "errechnen".
Cheers,
BaBa
require("../config.php");
Danke BaBa funktioniert
Hallo,
ich habe ein Problem. Meine Configdatei liegt im http://subdomain.example.com/config.php mein Script das auf die Config zugreifen soll in http://subdomain.example.com/beispiel/index.php . Wie include ich eine Verzeichnisebene tiefer?
Mit ../config.php
. Die Regeln zum relativen Referenzieren in HTML gelten auch beim Arbeiten im Dateisystem.
Gruß,
Tobias
Danke Tobias,
wieder lesestoff für den PHP beginner.
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ich habe ein Problem. Meine Configdatei liegt im http://subdomain.example.com/config.php mein Script das auf die Config zugreifen soll in http://subdomain.example.com/beispiel/index.php . Wie include ich eine Verzeichnisebene tiefer?
require("config.php"); //Kann nicht laufen die Datei ist nicht im Verzeichnis require(".\config.php"); //Scheint auch nicht includet zu werden...
Relative Pfade verwenden wäre möglich, ist aber sehr pflegeintensiv für ein Projekt:
require_once("../config.php"); ##
Besser wäre es ohnehin, wenn derartige Dateien gar nicht innerhalb der Document Root liegen würden, damit sie nicht bei Ausfall des PHP-Interpreters aus versehen im Klartext ausgeliefert werden.
Und dann kann man auch relativ zur Document Root adressieren:
include_once(rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/../includes/config.php');
Hier würde das include-Dir dann ein Schwesterverzeichnis der Dokument-Root sein und es ist egal, in welcher Verzeichnistiefe innerhalb der Document Root dein Skript liegt.
Warum ich den Slash am Ende von Document Root erst abschneide, und dann wieder anhänge? Weil die Document Root laut Apache ohne Slash angegeben werden muss, einige Admins aber die eigentlich vorgeschreibene Schreibweise nach Posix für Verzeichnisse, also mit Slash am Ende nehmen. Das kann dann zu Problemen führen.
Alle anderen Spielarten kannst Du Dir mal selber ausdenken.
Spirituelle Grüße
Euer Robert
robert.r@online.de
Danke Roboert das ist super um sich weiter mit dem Thema zu beschäftigen.