Include require Anweisung

Hi,
Ich hab folgendes Problem: Ich versuche aus einem script heraus eine Klasse(Auth), die in einem anderen Ordner liegt, mit require_once einzubinden. Diese Klasse wiederum bindet eine weitere Klasse(User) in einem Übergeordnetem Verzeichniss von Auth ein. Dies erzeugt jedoch eine Fehlermeldung(Datei nicht gefunden). Wenn ich ich die Klasse Auth direkt aufrufe, so funktioniert es hingegen ohne Probleme.
Falls jemand eine Lösung für das Problem kennt so möger er mir bitte alsbald schreiben.

lg
Georg

Hi Georg,
die Verzeichnisse aus denen du lesen willst müssen in der php.ini im „include_path“ mit angegeben sein.

Include heisst ja soviel wie einfügen. Da heisst, die Datei der Klasse „Auth“ ist nun Bestandteil der Datei aus der du diese „Auth“ Klasse einfügst. Von dieser Datei aus sucht dann PHP auch die Dateien die möglicherweise wieder inkludiert werden.
Ich hoffe das ist verständlich :wink:

Gruss
Quaser

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

Das Problemist folgendes:

Wenn Du die Klasse( Auth ) aufrufst und innerhalb dieser wiederum eine andere Klasse( User ), befindet sich die Klasse( Auth ) durch den vorherigen Aufruf nicht mehr in dem ursprünglichen verzeichnis, wenn Du die Pfade innerhalb der Klassen nur relativ gesetzt hast.

Ein Beispiel:
Du hast folgende Dateistrucktur

+ ROOT_VERZEICHNIS
-Script
++ ORDNER_EINS
–Klasse( Auth )
+++ ORDNER_ZWEI
—Klasse( User )

Dabei liegt „Script“ im Hauptverzeichnis, im Hauptverzeichnis befindet sich der „ORDNER EINS“ und in diesem wiederum der „ORDNER ZWEI“.

Wenn Du nun innerhalb von „Script“ die „Klasse( Auth )“ aufrufst, befindet sich die „Klasse( Auth )“ nicht mehr im „ORDNER EINS“ sondern steigt in das „ROOT VERZEICHNIS“.

Wenn nun der Aufruf der „Klasse( User )“ innerhalb von „Script“ folgendermaßen aussieht:

require\_once( "ordner\_zwei/Klasse\_user.php" )

Stimmt dieser nicht mehr denn er müsste folgendermasse heissen:

require\_once( "ordner\_eins/ordner\_zwei/Klasse\_user.php" )

Weil ja „Klasse( Auth )“ in das „ROOT VERZEICHNIS“, durch den Aufruf in „Script“ gestiegen ist.

Du müsstest also die Pfadangabe ändern.

Hoffe Dir gegholfen zu haben.

Gruß Michael