Ergebnis 1 bis 7 von 7

Thema: Relative Pfadangeben in php

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Relative Pfadangaben in php

    Hallo,

    ich habe ein Problem mit Pfadangeben in php.
    Ich poste hier jetzt mal die Daten von meinem Funpic-Testspace, sry für die langen Pfadangaben.

    Im Ordner /usr/export/www/vhosts/funnetwork/hosting/lumax/game/inc liegt eine Datei namens main.php. Sie enthälz u.A. folgende Zeile:
    PHP-Code:
        $dat file("/usr/export/www/vhosts/funnetwork/hosting/lumax/game/data/user"); 
    Ich wollte den Code so schreiben, dass er portabel ist, und dachte mir, ich baue die Zeile um, so dass sie so aussieht:
    PHP-Code:
        $dat file("../data/user"); 
    Aber der Php-Interpreter wirft jetzt eine fehlermeldung, weil er meint, dass ich versucht hätte, die Datei /data/user zu öffnen, nicht /usr/export/www/vhosts/funnetwork/hosting/lumax/game/data/user
    Woran liegt das? Eigentlich ist ../ doch immer das übergeordnete Directory.

    Geändert von Lukas (30.12.2004 um 14:50 Uhr)

  2. #2
    Vieleicht ist das ja so :

    Also sagen wie dier URL der datei ist

    user.funpic.de/testdatei.php

    so nun will er per ../ einen Ordner zurückgehn aber das geht nett weil du NUR berechtigung für diesen Ordner hast.



    Könnte falsch sein währe aber ne Lösung

    Währe geil wenn das ginge ../../../../../../../root/ währe dann was feines

  3. #3
    Zitat Zitat von dadie
    ...Währe geil wenn das ginge ../../../../../../../root/ währe dann was feines
    Ich gehe mal stark davon aus das funpic den safe_mode angeschaltet hat oder Zugriff auf übergeordnete Ordnersysteme außerhalb des DocumentRoot auf anderem Wege zu verhindern weiß.
    Wäre fatal wenn nicht.

    @ Problem:
    Die vordefinierte Variable "$DOCUMENT_ROOT" enthält immer den Pfad des DocumentRootes des Accounts auf dem das Script läuft.
    In deinem Falle theoretisch:
    /usr/export/www/vhosts/funnetwork/hosting/lumax/
    Darauf kannst du dann aufbauen:
    $DOCUMENT_ROOT."data/user"
    Weshalb die relative Lösung nicht funktioniert, weiß ich nicht. Erscheint mir selbst unlogisch da ich keinen ehler in deinem Script entdecken kann. Vielleicht Fehlkonfiguration des Servers.
    Du könntest prüfen ob der Server überhaupt weiß wo sich die Scripte befinden die er ausführt:
    PHP-Code:
    echo $PHP_SELF

  4. #4
    Das ist es nicht. Der Ordner lumax und alle seine Unterordner sind meine.

  5. #5
    Problem gelöst *ganz doll selbsthau* §doof

    Ich habe den Pfad, in dem das Spiel liegt, in eine include-Datei geschrieben, da ich zu faul war, den ganzen Kram in jede Datei abzutippen. Das sah dann etwa so aus:
    PHP-Code:
    include("datei"); // in dieser Datei steht nur die Php-Anweisung $root = "..";
    $dat file("$root/data/user"); 
    Dann ist $root in der Hauptdatei natürlich nicht mehr gesetzt, was dazu führt, dass der Interpreter den String als "/data/user" ausliest. Ich habe vergessen, das Variablen aus include-Dateien nicht übernommen werden.

    btw, wo ich das gerade sehe: dieses Orange für die Kommentare aus dem Php-Syntaxhighlighting ist auf dem Grau sehr schlecht zu erkennen. Kann man da nicht eine andere Farbe einstellen?

    Geändert von Lukas (31.12.2004 um 11:47 Uhr)

  6. #6
    Das kann eigentlich nicht der Fehler gewesen sein, da Variablen aus include-Dateien sehr wohl in der aufrufenden Datei verfügbar sind (habs gerade ausprobiert!).

  7. #7
    Komisch, bei mir nicht.

    Hab's ebenfalls ausprobiert.
    Vielleicht hängt das mit der Konfiguration zusammen?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •