Thomas: PHP Include

Hallo,

ich habe ein kleines Problem und ich komm einfach nicht weiter.

Ich möchte in meine Bildergalerie die gleiche Menüleiste einbinden, wie auf der Website. Die Menüleiste habe ich in einer Datei "oben.html", welche ich in jeder weiteren Seite der Website per include einbinde. Die Datei "oben.html" liegt auf dem Server im Root-Verzeichnis, also in keinem Ordner.

Beispiel: Einbinden der Menüleiste –  include ("oben.html");

Jetzt möchte ich aber diese Menüleiste wie oben geschrieben in meine Bildergalerie einbinden. Die Dateien liegen im Ordner

domain.de/gallery/templates/4default_wide/header.html

In diese Datei z.B. "header.html" möchte ich per include ebenfalls meine Menüleiste "oben.html" einbinden.

Wie muss hier der include-Befehl  ??? include ("../../../oben.html");  lauten?

Vielen Dank für Eure Hilfe

Thomas

  1. Glück auf Thomas!

    Wie muss hier der include-Befehl  ??? include ("../../../oben.html");  lauten?

    Oder einfach ("/oben.html"), dann geht er vom Wurzelverzeichnis aus und du brauchst dir keine Gedanken machen, von wo du den Spaß einbindest.

    Mehr dazu findest du hier

    Freundliche Grüße

    zwerg Alex

    1. Hi Alex,

      Oder einfach ("/oben.html"), dann geht er vom Wurzelverzeichnis aus und du brauchst dir keine Gedanken machen, von wo du den Spaß einbindest.

      Mehr dazu findest du hier

      Bist du dir da sicher? In php kann man auch auf Verzeichnisse außerhalb des "www-root"s zugreifen, zB haben einige PHP-Anwendungen config-Verzeichnisse, die (nicht nur aus Gründen der Ordnung) außerhalb liegen. PHP hat auch Zugriff auf /etc/password, wenn ich da richtig liege. Ansonsten bräuchte man sich um Sicherheitslücken in PHP kaum Gedanken machen...

      gruß, Thorsten

      1. Hi,

        Bist du dir da sicher? In php kann man auch auf Verzeichnisse außerhalb des "www-root"s zugreifen, zB haben einige PHP-Anwendungen config-Verzeichnisse, die (nicht nur aus Gründen der Ordnung) außerhalb liegen.

        Sondern aus Sicherheitsgruenden, weil man dann ueber HTTP schon mal nicht rankommt, selbst wenn sonstige "Schutzmassnahmen" wie allow/deny, HTTP Auth o.ae. mal "ausfallen" wuerden.

        PHP hat auch Zugriff auf /etc/password, wenn ich da richtig liege.

        Nur, wenn der Server-Administrator mit seiner Jobwahl ziemlich falsch gelegen hat.

        MfG ChrisB

        1. Ich bekomme aber bei jedem Versuch folgende Fehlermeldung:

          Warning: include() [function.include]: open_basedir restriction in effect. File(../../../oben.html) is not within the allowed path(s): (/is/htdocs/user_tmp/wp1023570_LGMGC89FY3:/tmp:/bin:/usr:/is/default.errors:/is/htdocs/wp1023570_LGMGC89FY3) in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

          Warning: include(../../../oben.html) [function.include]: failed to open stream: Operation not permitted in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

          Warning: include() [function.include]: open_basedir restriction in effect. File(../../../oben.html) is not within the allowed path(s): (/is/htdocs/user_tmp/wp1023570_LGMGC89FY3:/tmp:/bin:/usr:/is/default.errors:/is/htdocs/wp1023570_LGMGC89FY3) in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

          Warning: include(../../../oben.html) [function.include]: failed to open stream: Operation not permitted in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

          Warning: include() [function.include]: Failed opening '../../../oben.html' for inclusion (include_path='.:/usr/share/pear/php5') in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

          Wo liegt denn der Fehler?

          1. Mahlzeit,

            Ich bekomme aber bei jedem Versuch folgende Fehlermeldung:

            ... die Dir klar und deutlich sagt, wo das Problem liegt:

            Warning: include() [function.include]: open_basedir restriction in effect. File(../../../oben.html) is not within the allowed path(s): (/is/htdocs/user_tmp/wp1023570_LGMGC89FY3:/tmp:/bin:/usr:/is/default.errors:/is/htdocs/wp1023570_LGMGC89FY3) in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

            [...]

            Wo liegt denn der Fehler?

            Deine PHP-Skripte dürfen nur auf Dateien in bestimmten erlaubten Verzeichnissen zugreifen (per open_basedir festgelegt). Wenn Du jetzt Dateien aus anderen Verzeichnissen includen willst, bekommst Du diesen Fehler.

            Lösungsvorschläge: Dateien woanders hinschieben oder open_basedir-Direktive entsprechend erweitern.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    2. Hi,

      Oder einfach ("/oben.html"), dann geht er vom Wurzelverzeichnis aus

      Aber nicht von der Domainwurzel wie bei der Betrachtung ueber HTTP, sondern vom Wurzelverzeichnis des Webservers. Un d da duerfen Webserver-Benutzer in den seltensten Faellen ihre eigenen Dateien ablegen.

      MfG ChrisB

      1. Glück auf!

        Hi,

        Oder einfach ("/oben.html"), dann geht er vom Wurzelverzeichnis aus

        Aber nicht von der Domainwurzel wie bei der Betrachtung ueber HTTP, sondern vom Wurzelverzeichnis des Webservers. Un d da duerfen Webserver-Benutzer in den seltensten Faellen ihre eigenen Dateien ablegen.

        Hhhm, bei mir klappt das lokal (vor meinem Post mit dem einbinden eines Bildes getestet) und auch online (nach deinem Post getestet). Vlt. ist das jetzt bei meinem Provider (Allinkl) ausnahmsweise so möglich. Für den Fall entschuldige ich mich für die Falschauskunft.

        Freundliche Grüße

        zwerg Alex

    3. Hab das nach den Beiträgen von Chris und Thorsten nochmal beim includen getestet und da funktionierte es nicht. Entschuldigung für die falsche Antwort. Nächstemal teste ich vorher oder halt einfach mal die Fresse, wenn ich keine Ahnung hab ^^

  2. Grüße,
    hast du es schon ausprobiert^^? wenn nicht warum dann die fage XD ?

    In diese Datei z.B. "header.html" möchte ich per include ebenfalls meine Menüleiste "oben.html" einbinden.

    Wie muss hier der include-Befehl  ??? include ("../../../oben.html");  lauten?

    jaa....?

    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
    Boccaccio
  3. Ich bekomme aber bei jedem Versuch folgende Fehlermeldung:

    Warning: include() [function.include]: open_basedir restriction in effect. File(../../../oben.html) is not within the allowed path(s): (/is/htdocs/user_tmp/wp1023570_LGMGC89FY3:/tmp:/bin:/usr:/is/default.errors:/is/htdocs/wp1023570_LGMGC89FY3) in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

    Warning: include(../../../oben.html) [function.include]: failed to open stream: Operation not permitted in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

    Warning: include() [function.include]: open_basedir restriction in effect. File(../../../oben.html) is not within the allowed path(s): (/is/htdocs/user_tmp/wp1023570_LGMGC89FY3:/tmp:/bin:/usr:/is/default.errors:/is/htdocs/wp1023570_LGMGC89FY3) in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

    Warning: include(../../../oben.html) [function.include]: failed to open stream: Operation not permitted in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

    Warning: include() [function.include]: Failed opening '../../../oben.html' for inclusion (include_path='.:/usr/share/pear/php5') in /is/htdocs/wp1023570_LGMGC89FY3/www/gallery/includes/template.php(101) : eval()'d code on line 62

    Wo liegt denn der Fehler?

  4. Hi,

    Die Menüleiste habe ich in einer Datei "oben.html", welche ich in jeder weiteren Seite der Website per include einbinde.

    warum tust Du das? Befindet sich denn wirklich PHP-Code in dieser (html-)Datei?
    Wenn nicht, dann wäre readfile('oben.html') angebrachter.

    Die Datei "oben.html" liegt auf dem Server im Root-Verzeichnis, also in keinem Ordner.

    Mit Sicherheit liegt er in einem Verzeichnis... nur halt im Startverzeichnis der Domain.

    Probiere mal readfile('../../../oben.html') aus. Wenn dies einen Fehler wirft, bliebe Dir noch die Möglichkeit, eine Kopie dieser Datei in Deinem Verzeichnis 4default_wide abzulegen und einzubinden.

    freundliche Grüße
    Ingo

    1. Naja, es gibt schon noch eine weitere Möglichkeit:
      include($_SERVER['DOCUMENT_ROOT'] .'/oben.html');

      (alelrdings finde ich es auch etwas merkwürdig, html-Dateieen per include einzubinden ;)

      Gruß,
      Manu

      1. *Bleep* ich glaub, da ist ein / zuviel...
        Gruß,
        Manu