kostenloser Webspace werbefrei: lima-city


[PHP] "Root-Pfad" ermitteln

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ferdinand24

    Kostenloser Webspace von ferdinand24

    ferdinand24 hat kostenlosen Webspace.

    Moin,

    ich habe tag/folgende url">folgende URL:
    http://www.example.com/admin/preferences/useredit/123456789

    Diese wird mittels mod_rewrite (Rules liegen in admin/) umgeschrieben zu
    preferences.php?mode=useredit&id=123456789

    Im Ordner http://www.example.com/admin/include/ liegen Daten, die eingebunden werden müssen.
    Eine relative Pfadangabe (./include/include.php) funktioniert da nicht.
    Das müsste schon sein: ../../../include/include.php (exemplarisch; es ist möglich, dass ein "../" zu viel oder zu wenig ist)

    Kein Problem, ich könnte ja diesen Pfad im include-Befehl angeben.
    Es gibt jedoch auch folgende URL:
    ... /preferences/index.html

    die ganze einfach umgeschrieben wird zu
    ... preferences.php

    Wenn ich da jetzt die Dateien mit relativem Pfad einbinde, muss ein anderer her.
    Die Tiefen der "virtuellen" "Verzeichnisse" sind unterschiedlich.

    Also müsste ein absoluter Pfad her.
    Der wird tatsächlich auch ermittelt, allerdings erst in einer der eingebundenen Dateien.
    Doch diese muss ja auch eingebunden werden.

    Wie kann ich den absoluten Pfad bis zu admin/ ermitteln?

    $_SERVER['DOCUMENT_ROOT'] bringt nicht allzu viel, da auch admin/ unter Umständen in einem Unterordner liegt (z.B. /srv/www/htdocs/projekt-xyz/admin/) und als Ausgabe dann natürlich nur "/srv/www/htdocs" zurückkommt.

    Den Pfad in jeder Datei einzeln anzugeben ist auch zu "russisch", da cih ihn bei einem Wechsel der Umgebung dann überall manuell anpassen muss.


    Oder gibt es eine ganz andere Möglichkeit, das zu lösen?
    Irgendwie funktioniert das ja :)


    gruß
    ferdinand24
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hmm mich wundert dass du auf deinem Produktionssystem dann dein Dokument-Root oberhalb verschiedener Projekte hast, aber das könnte ja durchaus so sein ;-)
    Im Testsystem (xampp) ist das zwar meist so, aber im Live-Betrieb meist anders.

    Naja egal auf die schnelle fällt mir da nur folgendes ein:
    include(dirname(__FILE__).'filename.php');


    wobei dirname(__FILE__) den Pfad der aktuellen Datei wiedergibt ;-)

    Grüßle

    Beitrag zuletzt geändert: 27.4.2009 17:54:29 von scout
  4. t*****b

    Wenn du mit Mod_rewrite den Pfad änderst, bleibt der Pfad in PHP dennoch der gleiche!

    Du kannst also per http://www.domain.de/bla/und/blubb.php welche zu index.php?para1=bla&para2=und&.. geroutet wird dennoch Dateien einbinden, die Einbindung findet von index.php aus statt und nicht von /bla/und/blubb.php. Du brauchst also keinen absoluten Pfad.

    Problemtaisch ist das eher im Browser, da du ja jede Menge Sachen hast, die verknüpft werden, zB Bilder, Links, Stylesheets usw. Damit du auch dort keinen absoluten Pfad brauchst, kannst du den Base-Tag (<base href="http://www.domain.de" />) verwenden.
  5. Autor dieses Themas

    ferdinand24

    Kostenloser Webspace von ferdinand24

    ferdinand24 hat kostenlosen Webspace.

    Moin,

    entweder stelle ich mich ziemlich blöd an, oder es ist aber tatsächlich doch nciht so, wie du es sagst...
    Das Base-Tag verwende ich schon; aber mit den Pfaden für die PHP-Skripte, das hat jetzt hier nicht geklappt...

    Wahrscheinlich vollkommene Verpeilung...
  6. Wenn ich dich richtig verstanden habe, ist dein Problem, dass die preferences.php nicht immer gefunden wird je nach Ordner der ausgewählt wurde.

    dann mach doch in der .htaccess aus preferences.php?mode=useredit&id=123456789 ein /preferences.php?mode=useredit&id=123456789

    Ansonsten bleiben dir für ROOT nur die Server Directive oder halt wie sout schon sagte dirname(__FILE__) um von der ausführenden Datei auszugehen

    lg
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!