SSV: relativer Überordner

Servus!

Ich suche momentan an einer Lösung zum includen einer PHP-Datei. Meine Ordnerstruktur sieht folgendermaßen aus:

html
  includes
    menue.php
  data
    intern
      index.php

Wenn ich jetzt in die index.php meine menue.php includen will benötige ich einen Code. Bisher habe ich dies immer mit absoluten Adressen gelöst, doch nun - nachdem ich meine Seite relaunche - möchte ich dies mit der relativen Lösung probieren. Wenn ich ein Bild einfügen möchte, habe ich dies mit dem folgenden Code gelöst:
<a href><img src="../../../images/back.gif">Bild</a>
Somit habe ich mir gedacht, dass dies auch so als Include-Befehl möglich ist:
<?php @include("../../../includes/menue.php");?>
Doch leider funktioniert das nicht. Worin besteht mein Fehler?

Vielen Dank für eure Hilfe!

Grüße
Christian

  1. Hallo SSV.

    Ich suche momentan an einer Lösung zum includen einer PHP-Datei. Meine Ordnerstruktur sieht folgendermaßen aus:

    html
      includes
        menue.php
      data
        intern
          index.php

    […]
    Somit habe ich mir gedacht, dass dies auch so als Include-Befehl möglich ist:
    <?php @include("../../../includes/menue.php");?>
    Doch leider funktioniert das nicht. Worin besteht mein Fehler?

    Du unterdrückst die Fehlermeldungen. Entferne das „@“ vor dem include-Kommando und füge zusätzlich noch ein error_reporting(E_ALL); am Anfang deines Scriptes hinzu.

    Einen schönen Dienstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Servus Mathias!

      Danke für deine Antwort. Leider fuktioniert der Include noch immer nicht - dafür werde ich jetzt mit Fehlermeldungen zugemüllt:

      Warning: Unknown(): open_basedir restriction in effect. File(../../../includes/menue.php) is not within the allowed path(s): (/home/www/web494/html/:/home/www/web494/phptmp/:/home/www/web494/files/:/home/www/web494/atd/) in /home/www/web494/html/Galerien/includes/template.php(101) : eval()'d code on line 2

      Vielen Dank für deine Hilfestellung.

      Grüße
      Christian

      1. Hallo SSV.

        Danke für deine Antwort. Leider fuktioniert der Include noch immer nicht - dafür werde ich jetzt mit Fehlermeldungen zugemüllt:

        Warning: Unknown(): open_basedir restriction in effect. File(../../../includes/menue.php) is not within the allowed path(s): (/home/www/web494/html/:/home/www/web494/phptmp/:/home/www/web494/files/:/home/www/web494/atd/) in /home/www/web494/html/Galerien/includes/template.php(101) : eval()'d code on line 2

        Zusätzlich ist also PHPs SafeMode aktiv. Die Fehlermeldung zeigt dir nun, dass du auf eine Verzeichnisebene zuzugreifen versuchst, auf die du laut open_basedir keinen Zugriff haben darfst.

        Tatsächlich gehst du ja auch ein Verzeichnis zu weit nach oben. Deine Verzeichnisstruktur noch einmal:

        html
        |-- data
        |   -- intern |       -- index.php
        -- includes     -- menue.php

        Und dein include-Kommando in der index.php:

        <?php  
          
        error_reporting(E_ALL);  
          
        include("../../../includes/menue.php");  
        #        1  2  3  
        ?>
        

        Führt zu:

        1 → data
        2 → html
        3 → ?

        Einen schönen Dienstag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. Mmmh, stimmt. Ich habs auch gleich abgeändert - allerdings kommt die gleiche Fehlermeldung wieder...
          Ich sehe das Problem nicht.

          Liebe Grüße
          Christian

          1. Hallo SSV.

            Mmmh, stimmt. Ich habs auch gleich abgeändert - allerdings kommt die gleiche Fehlermeldung wieder...

            Die gleiche oder dieselbe? Falls ersteres, dann poste diese bitte.

            Ich sehe das Problem nicht.

            Sollte das Problem direkt mit dem SafeMode zusammenhängen, kann dir jemand anders sicher besser weiterhelfen, da ich mich damit bisher kaum befasst habe.

            Einen schönen Dienstag noch.

            Gruß, Mathias

            --
            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
            debian/rules
            1. Danke für deine Hilfe!
              Ich habe das Problem gelöst: Es bestand darin, dass die index.php ebenfalls included worden ist - ja und die Stammdatei lag wieder in einem anderen Ordner. Das war alles. Manchmal liegt das einfache so nah, dass man es nicht erkennt. Danke nochmals.

              Schöne Feiertag noch.

              Liebe Grüße
              Christian

        2. Hallo Mathias,

          Zusätzlich ist also PHPs SafeMode aktiv.

          Das ist ein nicht-zulässiger Schluss ;-) open_basedir gehört zwar konzeptionell zum Beereich Safe Mode, aber es macht bei der Verwendung von open_basedir keinen Unterschied, ob der Safe Mode aktiviert ist oder nicht.

          Schöne Grüße,

          Johannes