Marc Schumann: relativer Verweis führt fu Fehler

Hallo Allerseits (Ich schon wieder)

Ich versuche einen Dateiinclude auf eine Ebene höher zu verweisen:
<?
include ("../header.php");
?>

Das hier geht:
<?
include ("header.php");
?>

( Die Datei header.php ist ein Verzeichnis höher selbstverständlich vorhanden)

Die Fehlermeldung die ich bekomme ist:

Warning: main(../header.php): failed to open stream: No such file or directory in /srv/www/htdocs/php/Monatserfassung/test.php on line 2

Warning: main(): Failed opening '../header.php' for inclusion (include_path='.:/usr/share/php') in /srv/www/htdocs/php/Monatserfassung/test.php on line 2

Das ganze funktioniert aber auf meinem Windowsrechner !

Nur auf meiner Linuxinstallation gehts nicht.Dort ist scheinbar ein IcnludePfad gestzt.

Wie und WO kann ich das ändern ?

(Ich habe wohl schon den verdacht, das es etwas mit meiner php.ini zu tun hat, bin mir aber unsicher irgedwas daran zu drehen)

Danke Marc Schumann

  1. Ich versuche einen Dateiinclude auf eine Ebene höher zu verweisen:
    include ("../header.php");

    Das hier geht:
    include ("header.php");

    ( Die Datei header.php ist ein Verzeichnis höher selbstverständlich vorhanden)

    Die Fehlermeldung die ich bekomme ist:

    Warning: main(../header.php): failed to open stream: No such file or directory in /srv/www/htdocs/php/Monatserfassung/test.php on line 2

    Dann frage ich mich, warum header.php funktioniert und ../header.php nicht. Es ist schlichtweg unmöglich, auf eine Datei, die im Elternverzeichnis liegt, nur mit dem Dateinamen zugreifen zu können, mit dem Pfad aber nicht.
    Allem Anschein wähnst Du Dein Skript im falschen Verzeichnis.

    Warning: main(): Failed opening '../header.php' for inclusion (include_path='.:/usr/share/php') in /srv/www/htdocs/php/Monatserfassung/test.php on line 2

    Probiere doch bitte mal folgendes:

    ls -l /srv/www/htdocs/php/

    Das müsste in etwa unter anderem in folgendem resultieren:

    insgesamt 123
    drwxr-xr-x    3 user  gruppe   4096  7. Jun 2003  Monatserfassung
    -rw-r--r--    1 user  gruppe    123 23. Mär 12:09 header.php

    Weiterhin:

    ls -l /srv/www/htdocs/php/Monatserfassung

    insgesamt 1234
    -rw-r--r--    1 user  gruppe    123 23. Mär 12:09 test.php

    Falls es mit Ausnahme von Eigentümer, Gruppe, Größe und Datum/Zeit anders aussieht, kläre das.

    Nur auf meiner Linuxinstallation gehts nicht.Dort ist scheinbar ein IcnludePfad gestzt.

    Der ist so auch richtig, da muß nichts geändert werden.

    Wie und WO kann ich das ändern ?

    In der php.ini.

    (Ich habe wohl schon den verdacht, das es etwas mit meiner php.ini zu tun hat, bin mir aber unsicher irgedwas daran zu drehen)

    Den Mutigen gehört die Welt.

    1. Danke erstmal, aber:

      Dann frage ich mich, warum header.php funktioniert und ../header.php nicht. Es ist schlichtweg unmöglich, auf eine Datei, die im Elternverzeichnis liegt, nur mit dem Dateinamen zugreifen zu können, mit dem Pfad aber nicht.

      Die Datei gibt es im aufrufenden verzeichnis als link, und im Elternverzeichnis als Datei. Auf den Link wollte ich gerne durch ../datei verzichten

      Das ist ja das Problem ! Es geht aber...

      Allem Anschein wähnst Du Dein Skript im falschen Verzeichnis.

      Das haut schon hin, wenn ich nämlich die datei header.php mit einem link in das verzeichnis lege gehts ( also kanns nicht an rechten ort oder sonstigem liegen.

      Falls es mit Ausnahme von Eigentümer, Gruppe, Größe und Datum/Zeit anders aussieht, kläre das.

      Wie und WO kann ich das ändern ?

      In der php.ini.

      ????????????
      Füe jede weitere Hilfe Dankbar Marc Schumann

      1. Allem Anschein wähnst Du Dein Skript im falschen Verzeichnis.
        Das haut schon hin, wenn ich nämlich die datei header.php mit einem link in das verzeichnis lege gehts ( also kanns nicht an rechten ort oder sonstigem liegen.

        Dann wäre interessant, was passiert, wenn die Datei in einem tieferliegenden Verzeichnis liegt, der Zugriff also nicht "../datei" ist, sondern "verzeichnis/datei". Du solltest ebenfalls prüfen, ob das auch bei anderen Skripten passiert oder nur bei diesem einen (schreibe dazu ein ganz neues).

        Wie und WO kann ich das ändern ?

        In der php.ini.

        ????????????

        phpinfo(), innerhalb der ersten zwei, drei Blöcke ist der Ort angegeben, an dem sich diese Datei befindet. Dort suchst Du nach

        Warning: main(): Failed opening '../header.php' for inclusion (include_path='.:/usr/share/php')

        ------------------------------------------------------------------^^^^^^^^^^^^

        Der Punkt ganz am Anfang (=aktuelles Verzeichnis) hätte eigentlich dafür sorgen sollen, daß relative Pfade funktionieren. Siehe http://www.php.net/manual/de/configuration.directives.php#ini.include-path.