Mailinglisten-Archive |
Hi, ich habe jetzt gerade ausprobiert, ob sich der Fehler mit drei "jungfräulichen" und neu erstellten Dateien reprozudieren läßt. Die Antwort: Ja! Leider! Also, hier kurs der Quellcode: <?php // Datei index.php echo "index.php"; require_once("1/datei_1.inc.php"); ?> <?php // Datei /inc/datei_1.inc.php echo "Datei 1"; require_once("inc/datei_2.inc.php"); ?> <?php // Datei /inc/datei_2.inc.php echo "Datei 2"; ?> Funktioniert auf der Entwicklermaschine wie erwartet. Auf der anderen Maschine werden nur die echos aus index.php und datei_1.inc.php angezeigt. datei_1.inc.php erzeugt dann noch folgende Fehlermeldung: Warning: main(inc/datei_2.inc.php) [function.main]: failed to open stream: No such file or directory in c:\wampp1\htdocs\test\inc\datei_1.inc.php on line 3 Fatal error: main() [function.require]: Failed opening required 'inc/datei_2.inc.php' (include_path='\wampp1\php\pear\') in c:\wampp1\htdocs\test\inc\datei_1.inc.php on line 3 Gruß Carsten Steffen Gebert schrieb: > 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 >> > > > > -- Carsten Krautwald Webservice Krautwald => Internetseiten => Datenbanken => Usability-Tests Wichelmannstrasse 38 49393 Lohne Tel.: 0 44 42 / 808 975 Fax : 0 44 42 / 808 974 info at webservice-krautwald.de www.webservice-krautwald.de
php::bar PHP Wiki - Listenarchive