include() / "basis-arbeitsverzeichnis"

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

  • include() / "basis-arbeitsverzeichnis"

    Ich habe zur zeit mit einem kleinen problem zu kämpfen... ich habe ein G-Book script programmiert welches mit Textdateien arbeitet. Dieses soll nun per include benutzt werden können. Leider wird wenn das Gästebuch aus einem anderen ordner includet wird dieser ordner quasi als "arbeitsverzeichnis" übernommen wodurch z.B. ein befehl wie
    PHP-Code:
    file("data.txt"); 
    funktioniert dann logischerweise nicht mehr, da sich in dem verzeichnis aus dem das G-Book heraus includet wurde keine data.txt (oder nicht die vorzufindende) befindet.

    Ich bin nun auf die idee gekommen eine Variable $wd (working-directory) vor jeden file() und fopen() befehl zu packen, klappt auch vorzüglich, doch das G-Book ist dadurch nur durch den include aus genau dem verzeichnis das mit $wd spezifiziert wurde zu betreiben...

    weiterhin bin ich auf die idee gekommen einfach eine http:// anfrage zu stellen wodurch wirklich nur der output includet wird, doch dann ist mir aufgefallen dass auf PHP-Installationen mit allow_url_fopen = off config dies ebenfalls nicht geht (wenn auch auf dem selben server gelegen)...

    weiß jemand rat wie ich dieses problem lösen kann? gibt es vielleicht eine variable die den tatsächlichen pfad des scriptes enthält oder ähnliches so dass ich daraus einen verzeichnisnamen kriege der in $wd auch per include das aus sicht der file die includet richtige verzeichnis kriege??

    für jede hilfe bin ich dankbar

    greetz, Warhog { www.warhog.info | www.scravy.de }

  • #2
    wie wärs mit ../ ?

    Kommentar


    • #3
      ¬.¬

      Also...

      stell dir vor du hast dein root-verzeichnis "/" und darin ein verzeichnis "/gbook/" . Das G-Book ist die "/gbook/index.php". Deine HomePage wird über die "/index.php" geregelt.

      Includest du nun von "/index.php" die "/gbook/index.php" ist für die "/gbook/index.php" das hier "/" das arbeitsverzeichnis. Versucht die "/gbook/index.php" nun die datei "data.txt" zu öffnen die sich normalerweise in "/gbook/data.txt" befindest, so öffnet sie die "/data.txt" die wahrscheinlich nicht existiert, denn sie soll ja die "gbook/data.txt" öffnen.

      Ich habe das problem vorerst so gelöst dass einfach (aus sicht der "/gbook/index.php" die von der "/index.php" includet wird, muss sie ja die "/gbook/data.txt" öffnen) eine variable $wd mit dem relativen pfad zum gbook vorne dran gehänggt wird
      PHP-Code:
      file($wd."/data.txt"); 
      Das WD (working directory) lässt sich in den Einstellungen des g-books ändern. Problem ist jetzt nur dass das g-book jetzt nur noch per include aus der "/index.php" funktioniert und z.B: nicht mehr per include über eine "/hp2/index.php" oder gar per direktaufruf (da es nun auch aus "/gbook/" heraus versucht $wd."/data.txt" zu öffnen was dann ja "/gbook/gbook/data.txt" wäre!

      Eigentlich ist das kein problem, da man das ja so anpassen kann. Das Script möchte ich aber zum Download anbieten so dass es auch von leuten ohne oder mit geringeren PHP-kenntnissen genutzt werden kann - und vor allen dingen ohne dabei den quellcode des g-books anrühren zu müssen für evtl. updates usw.

      hoffe ich konnte mein dilämmer gut darstellen, falls ihr das script sehen wollt is auf info.warhog.net/?page=download.htm bzw. direkt: http://info.warhog.net/download/g-boxx-v1.5-alpha1 (alpha1 der v1.5)

      greetz, Warhog

      Kommentar


      • #4
        uaaar, der link is falsch
        -> http://info.warhog.net/download/g-boxx-v1.5-alpha1.zip *die sache mit den dateiendungen *

        Kommentar


        • #5
          Ähm hast du schon mal phpinfo(); ausgeben lassen?

          Wenn nicht dann mach das mal, hier wirst du z.B. auch auf die Variable
          $_SERVER["DOCUMENT_ROOT"] stossen.
          Mit Hilfe dieser Variable kannst du deinen Workpfad vorgeben.

          Also praktisch die Variable und dein Script zusammenhängen via String und siehe da er sucht dann in Htdocs und nicht in deinem derzeitigen Verzeichnis.
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar


          • #6
            wuow, danke

            genau sowas hab ich gesucht - schade nur dass das nur auf apache funktioniert... aber wer benutzt schon PHP ohne Apache

            big thx nochmal

            Kommentar

            Lädt...
            X