Auch ein Problem mit Include ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Auch ein Problem mit Include ...

    also Leute,

    ich habe mehrer Dateien z.b.

    im verzeichnis test/boerse/
    liegt die datei config.php

    in ihr steht etwas wie


    PHP-Code:
    <?
    include ("../../1.php");
    include ("../../2.php");
    include ("../../3.php");
    include ("../../4.php");
    ?>
    im selben verzeichnis liegt eine datei die diese config.php wiederum included.


    Dann gibt es ein Verzeichnis im verzeichnis test/boerse/admin/
    dort gibt es eine Datei namens admin.php die ebenfalls die config.php includet.

    Nur das Problem ist weil die Datei nun in einem anderen Verzeichnis liegt stimmt die Pfadangaben in der config.php ja nicht mehr.

    Gibt es eine möglichkeit anzugeben anstatt ../../../ einfach irgend wie eine kombination das er vom root ausgeht wie bei DOS damals mit cd\ oder bei HTML /blabla/blabla oder so?!

    plz help ...

  • #2
    mach mal überall absolute Pfadangaben:


    include ( dirname(__FILE__) . '/../../foo.php' );
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      ich nehm dazu immer eine Variable ($rootdir) in der zum Anfang angegeben wird, wie weit das Wurzelverzeichnis "weg" ist.
      Diese kannst dann überall einfügen (z.B. bei meiner Navigation, die momentan noch bei jeder Seite neu dazugeladen wird) und schon passts...

      Ist am Anfang zwar ein bisschen viel Arbeit, aber es funktioniert danach einwandfrei...

      Aber vielleicht gibts ja auch noch eine elegantere Lösung?
      Hier könnte Ihre Werbung stehen! Bei Interesse wenden Sie sich bitte an den Inhaber dieser Signatur...

      Kommentar


      • #4
        Original geschrieben von TBT
        mach mal überall absolute Pfadangaben:


        include ( dirname(__FILE__) . '/../../foo.php' );

        Diese Lösung würde mich sehr interessieren leider check ich deinene Syntax net so dolle ... kannst mal ein Beispiel machen?

        Kommentar


        • #5
          dirname(__FILE__)

          ist das Verzeichniss der aktuellen Datei,
          also ist die Angabe danach immer relativ zur anktuellen
          Datei zu machen
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            also ich hab mir grad mal das dirname in der PHP Function Library durchgelesen. Und ich glaube wir reden etwas aneinander vorbei.

            Wills nochma versuchen zu erklären.

            Wir betrachten die ganze Sache mal vom root aus.

            Es gibt ein Verzeichnis:

            (1)
            phpglobals/classes/

            dort liegen mehrere Klassen Dateien drin.

            form.php
            body.php
            usw.


            dann wieder vom root aus gesehen gibt es ein verzeichnis

            (2)
            entwicklungen/idee/
            dort gibt es auch wieder einige andere Dateien unter anderem auch die Datei:

            class.php in der ich alle Dateien aus (1) include die ich benötige. Und zwar nach dieser Art und weise:

            include ("../../phpglobals/classes/form.php");

            Die class.php include ich dann wiederum dort wo ich diese Klassen benötige. Man kann sie als Zusammenstellung von Werkzeug zum erstellen des Projektes betrachten.

            Mein Problem was ich habe ist das ich keine Lust habe jedes mal die relativen Pfade zu ändern.

            Denn das Problem trat auf alls ich ein unterprojekt gestartet habe. Und zwar im Verzeichnis

            entwicklungen/idee/admin/

            denn nun stimmten die Pfade in der class.php die immernoch im Verzeichnis eins tiefer liegt nicht mehr.

            Ich such jetzt irgendeine Möglichkeit meine Pfade so angeben zu können das Sie aus jedem Verzeichnis gleich sind. also z.b. das ich immer vom root ausgehen kann indem ich irgendwie "/phpglobals/classes/form.php" eingebe oder ähnliches.

            Hoffe ihr versteht was ich meine?!

            Kommentar


            • #7
              nimm eine variable und weisse ihr den path zum webserver-root zu.
              diese schreibst du dann einfach vor das include.

              also
              $rootpath = "/home/web/domain/diesehier";

              mach dann das include so:
              include ($rootpath . "/classes/nawaswohl.php");

              ich denke, dass ist deine lösung. wenn nicht, einfach noch einmal schreiben ...
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Ich muß noch nebenbei zu bedenken geben das ich auf einem Windows Server arbeite ....

                soll ich dann der variable d:\inetpub\wwwroot\ zuweisen oder wie?

                Kommentar


                • #9
                  jepp.

                  kann aber sein, dass du zwei backslashen nehmen musst, das damit der eine nicht als excape gewertet wird.

                  also.

                  d:\\inetpub\\wwwroot\\
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar

                  Lädt...
                  X