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 10:47:06 CEST 2003


Hallo Carsten,

eigentlich dürfte sich bei sowas beim Versionssprung nichts geändert 
haben...

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");

ich hoffe, das hat dir vielleicht weitergeholfen.

wenn du die Pfadangaben anpasst, muss es eigentlich überall gehen. lass 
dir mal den pfadnamen, den du durch $_SERVER["DOCUMENT_ROOT"] und 
dem rest ausgeben und überprüfe, ob er korrekt ist.

ansonsten könnte da höchstens was mit den leseberechtigungen im linux-
dateisystem sein. zur not kannst du die auch mal kontrollieren.


mfg,
steffen


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

>Guten Morgen,
>
>ich bin ein wenig am verzweifeln. Und scheinbar habe ich von 
>irgendwelchen Änderungen innerhalb PHP nichts mitbekommen und 
wende mich 
>nun an die Liste.
>
>
>Ich setze W2K mit einem WAMP zum lokalen Entwickeln ein. Auf der 
>Entwickler-Maschine läuft derzeit noch PHP4.2.3.
>
>Das Programm, welches ich auf eine andere W2K Maschine mit PHP4.3.2 
>einsetzen möchte, setzt häufig den Befehl require_once() ein, um sich 
>Dateien aus dem Unterverzeichnis zu holen.
>
>Dabei kommt es auch vor, dass eine Datei aus einem Unterverzeichnis 
eine 
>andere Datei aus dem gleichen Unterverzeichnis per require_once() 
einliest.
>
>Alles wird lediglich von einer einzigen index.php Datei im root-dir 
>gesteuert.
>
>Auf der Entwicklermaschine kann ich ohne Probleme Datei wie folgt 
>einholen: require_once("inc/datei.inc.php");
>
>Der gleiche Aufruf auf dem Zweitrechner (mit PHP4.3.2) zeigt mir eine 
>Fehlermeldung an:
>
>Warnung: main
>("inc/datei.inc.php")
>failed to open stream. No such file or directory in ....
>
>Obwohl vorhanden! Es liegt an der Zuordnung der Pfade. Nach manueller 
>Überarbeitung des Quellcodes, indem ich vor die Pfadangaben z.B. 
>$_SERVER['DOCUMENT_ROOT'] setzte läuft das Script. Allerdings nicht 
mehr 
>auf der Entwicklermaschine (PHP4.2.3)!?
>
>Da ich keine Lust habe, jetzt zwei Versionen des Programms zu erstellen 
>und mir auch sicher bin, dass ich das nicht zwangsläufig muss :)... 
>frage ich mal allgemein in die Runde:
>
>1. Irgendwelche Vorschläge, wie man das Problem elegant lösen kann?
>2. Welche Einstellung bei PHP ist verantwortlich für das 
>unterschiedliche Verhalten der beiden Versionen? Und wie muss ich die 
>Einstellung abändern, damit das Verhalten auf beiden Maschinen 
>gleichzeitig funktioniert.
>
>Um "Querfragen" vorzubeugen. Ich kann das System auf dem Zweitrechner 
>ohne weiteres auf die Bedürfnisse dieses einen Programms "verbiegen". 
>Die Software wird ausschließlich lokal laufen und ist das einzige 
>Programm, welches auf dem lokalen Webserver läuft.
>
>Vielen Dank für Eure Antworten bereits im Voraus
>
>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