Archiv verlassen und diese Seite im Standarddesign anzeigen : include problem bei verzeichnis
Habe da ein merkwürdiges Problem,
Habe eine Datei die die Sessions prüft und bei erfolg auch eine weitere datei mit allen wichtignen functionen aufruft.
wenn ich alles in einem verzeichnis habe geht das auch wunderbar include ich jetzt jedoch die abfragedatei aus einem weiterem unterverzeichnis bekommt diese nicht mehr die daten aus der functionsdatei.
bekomme dann immer gemeldet das die jeweilige anweisung unbekannt sei.
hmm,
wie lautet die genaue fehlermeldung, verzeichnisstruktur, code?
Hi Abraxas,
wahrscheinlich funktioniert deine include-Anweisung
nicht, da du wahrscheinlich einen relativen Pfad verwendest.
Die relativen Pfade werden immer im Kontext des
gestarteten PHPs aufgelöst.
Zwei Lösungen fallen mir dazu ein.
Entweder könntest du in der include-Anweisung einen
absoluten Pfad verwenden z.B.:
include dirname(__FILE__) ."/inc.functions.php";
oder
du setzt den include-path auf das Verzeichniss mit
deinen include-Dateien:
if (substr(PHP_OS, 0, 3) == 'WIN')
set_include_path('.;'. dirname(__FILE__));
else
set_include_path('.:'. dirname(__FILE__));
netten Gruß, Holger
Thx hOk
Das mit dem absuluten Pfad fällt leider weg da es ein wachsendes Programm werden soll und es nachher zu Problemen kommen wird zumal es im moment noch local und später erst online laufen soll.
Die 2te Lösung klingt zwar interessant aber leider verstehe ich die ausführung nicht ganz.
Also wenn mir das mal bitte jemand genauer erklären könnte oder ein passendes Tutorial kennt.
abraxas
Hi Abraxas,
Über den include-Path gibst du Verzeichnisse an
in denen gesucht werden soll wenn du eine Datei
includest oder requirest, auf Windows-Systemen werden
die include-Pfade mit einem Semikolon getrennt und
auf Linux-Systemen mit einem Doppelpunkt.
Gegeben sei folgende Verzeichnisstruktur:
root
|_sub1
| |_sub1_sub1
| |_file1
|_sub2
|_file2
Üblicherweise wird der include-Path auf
ein Verzeichniss gesetzt in welchem alle
wichtigen Scripte liegen, hier z.B.: root/sub1.
Wenn du jetzt aber file2 dein aktuelles Script
ist müsstest ohne include-Path wie folgt
referenzieren um file1 zu includen:
../sub1/sub1_sub1/file1
Ist der include-Path gesetzt kannst du mit:
sub1_sub1/file1
referenzieren.
Wichtig ist nur das der include-Path gesetzt
wird, dies kannst du in einer zentralen
Konfigurations-Datei vornehmen.
netten Gruß, Holger
irgendwie versteh ich dass noch nicht so ganz :rolleyes: :rolleyes:
meine index, liegt im
www.ofp-2.com/offline verzeichnis
die datei, die includet werden soll liegt in
www.ofp-2.com/offline/news/ und heißt newsindex.php
wie include ich die datei denn nu ?
thx für antwort
schade dass ich den thread anfangs nicht gesehen habe. aber das was abraxas schreibt ist natürlich so nicht richtig!
@exige: include einfach so, wie hoc rs in der ersten version empfohlen hat.
Original geschrieben von exige
meine index, liegt im
www.ofp-2.com/offline verzeichnis
die datei, die includet werden soll liegt in
www.ofp-2.com/offline/news/ und heißt newsindex.php
wie include ich die datei denn nu ?
Na so wie sonst auch:
include $_SERVER['DOCUMENT_ROOT'] . '/offline/news/newsindex.php';
besser über __FILE__ aber das hast du ja in dem anderen Thread schon gelesen.
ich weiß ich bin dumm
aber wo muss ich denn nu was bei meinem beispiel hier einsetzen ??
if (substr(PHP_OS, 0, 3) == 'WIN')
set_include_path('.;'. dirname(__FILE__));
else
set_include_path('.:'. dirname(__FILE__));
das das umsetzen des include_path. das ist schmarn!
lol
und was ist kein schmarn ??
IchBinIch 27-03-2004, 20:28 wieso kein ganz normales
include(dirname(__FILE__)."datei.php");
|