phpbar.de logo

Mailinglisten-Archive

[php] require_once() - Unterschiedliche Pfadangaben zwischen PHP4.2.3 und PHP4.3.2???

[php] require_once() - Unterschiedliche Pfadangaben zwischen PHP4.2.3 und PHP4.3.2???

Steffen Gebert php-list at stg-design.de
Don Aug 14 11:01:34 CEST 2003


Mhh, wieder sehr merkwürdig.

was mir gerade eingefallen ist: $_SERVER["DOCUMENT_ROOT"] ist ja 
eigentlich auch total falsch. Zunächst würde ich dir mal zu folgendem raten:
gib statt "inc/" folgendes ein: dirname(__FILE__)."/inc/"

als kurzen test lässt du das aber einfach mal ausgeben, welcher pfad dann 
entsteht.

dass es in einem php-release so einen bug gibt, bezweifle ich einfach stark. 
irgendwo muss da ein fehler liegen. 
hast du es mal neu und ganz einfach gemacht ?( einfach 3 dateien, die 
etwas ausgeben und sich includen..)

mfg,
steffen


Am 14.08.2003 10:00:11, schrieb Carsten Krautwald <info at webservice-
krautwald.de>:

>Hallo Steffen,
>
>Danke für die superschnelle Antwort.
>
>
>> Hast du beachtet, dass der Pfad zu einer Datei, die aus einer bereits über 
>> require eingebundeten Datei nicht von der eingebundeten ausgeht, 
sondern 
>> von der aufgerufenen Datei.
>> 
>> Beispiel:
>> 
>> /seite1.php:
>> require_once("inc/include1.php");
>> 
>> /inc/include1.php: (/inc/include2.php einbinden)
>> require_once("include2.php");
>> 
>> wird nicht gehen, da es in dem Verzeichnis / keine include2.php gibt, 
>> sondern im Verzeichnis inc - daher müsste es heißen: require_once
>> ("inc/include2.php");
>
>Tja, aber genau das ist der Fall. Der originale Code (auf der 
>Entwicklermaschine) ist eben so aufgebaut, wie auch Du empfiehlst. Also 
>immer ausgehend von der ersten Verzeichnisinstanz, weil ja alle weiteren 
>Datei aus Unterordner bezogen werden.
>
>Nur... auf dem Zweitrechner, dessen einziger Unterschied eben eine 
>andere PHP-Version ist (4.3.2) läuft es nicht. Im Gegenteil: Genau das, 
>was eigentlich nicht laufen dürfte, geht. Beispiel:
>
>index.php ruft im Unterverzeichnis /inc/ eine Datei auf
>
>require_once("inc/datei1.inc.php");
>
>datei1.inc.php ruft anschließend datei2.inc.php auf, die im gleichen 
>Unterverzeichnis liegt. Auf der Entwicklermaschine läuft es mit dem 
>korrekten Code:
>
>require_once("inc/datei2.inc.php");
>
>Auf dem Zweitrechner wird die Datei komischerweise erst geladen, wenn 
>der Aufruf lautet:
>
>require_once("datei2.inc.php");
>
>Um ehrlich zu sein. Ich verstehe das nicht ganz und bin bisher auch im 
>Internet nicht fündig geworden...
>
>Gruß
>
>Carsten
>
>-- 
>** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
>Informationen: http://www.phpbar.de
>http://lists.phpbar.de/mailman/listinfo/php
>




php::bar PHP Wiki   -   Listenarchive