MSchnitzler2000: Schrägstrich (Slash) im Dateinamen

Ich erstelle Seiten, bei denen der Titel eines Buches der Name des PHP-Dokuments sein soll, also nach dem Schema Buchtitel.php
Nun habe ich einen Titel, in dem ein Schrägstrich (Slash) vorkommt. Da dieses Zeichen normalerweise zur Trennung zwischen Ordnername und Dokumentname verwendet wird, muss ich es maskieren. Dazu habe ich den Code %2F gefunden. Wenn ich nun aber ein Dokument der Form abc%2Fdef.php in den Ordner Bibliothek hochlade und im Browser aufzurufen versuche, erhalte ich die Fehlermeldung
"The requested URL /Bibliothek/abc%2Fdef.php was not found on this server"
Sieht so aus, als würde der Browser den ersten Teil, also das abc, als Ordnername interpretieren und darin das Dokument def.php suchen, statt das Dokument abc%2Fdef.php aufzurufen.
Gibt es irgendeine Möglichkeit, einen Dokumentnamen mit Schrägstrich zu nutzen?

  1. Hello,

    das Maskieren eines Pfadabgrenzers ist mWn nur unter unixoiden Betriebssystemen möglich.
    Unter WinDOSen musst Du wohl auf dieses Zeichen im Dateinamen / Ressourcenamen verzichten.

    Welcher Irre hat innerhalb eines Datei / Ressourcenamens SOnderzeichen benutzt?

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. "Welcher Irre hat innerhalb eines Datei / Ressourcenamens SOnderzeichen benutzt?"

      Findest du es nicht legitim, ein Buch Ausdruck1/Ausdruck2 zu nennen? Wieso sollte man als Buchtitelgeber in der realen Welt Rücksicht auf computerspezifische Probleme nehmen?

      Nein, mit Irren hat das nichts zu tun...

      Gnotterbald

      1. Hello,

        "Welcher Irre hat innerhalb eines Datei / Ressourcenamens SOnderzeichen benutzt?"

        Findest du es nicht legitim, ein Buch Ausdruck1/Ausdruck2 zu nennen? Wieso sollte man als Buchtitelgeber in der realen Welt Rücksicht auf computerspezifische Probleme nehmen?

        Na, oder 08/15?

        http://de.wikipedia.org/wiki/08/15

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
      2. Hi,

        Findest du es nicht legitim, ein Buch Ausdruck1/Ausdruck2 zu nennen? Wieso sollte man als Buchtitelgeber in der realen Welt Rücksicht auf computerspezifische Probleme nehmen?

        Die Frage lautet im Kontext dieses Threads ja eher, wieso ein URL Rücksicht auf sowas wie ein "Dateisystem" nehmen sollte.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Hallo,

          »» Findest du es nicht legitim, ein Buch Ausdruck1/Ausdruck2 zu nennen? Wieso sollte man als Buchtitelgeber in der realen Welt Rücksicht auf computerspezifische Probleme nehmen?
          Die Frage lautet im Kontext dieses Threads ja eher, wieso ein URL Rücksicht auf sowas wie ein "Dateisystem" nehmen sollte.

          muss ja gar nicht, wie ich schon erwähnte; "sollte" vielleicht schon. Es wird halt umständlicher, wenn man mit solchen Konventionen brechen möchte.

          So long,
           Martin

          --
          F: Was ist eigentlich aus deinem schlimmen Durchfall geworden?
          A: Mein Arzt hat mir Valium verschrieben.
          F: Und das hilft?
          A: Naja, ich mach mir immer noch in die Hose. Aber inzwischen ist es mir egal.
    2. hi,

      Welcher Irre hat innerhalb eines Datei / Ressourcenamens SOnderzeichen benutzt?

      Ich frag mich manchmal auch, wer auf die bescheuerte Idee gekommen ist, ausgerechnet den Slash "/" als Trennzeichen für Verzeichnisse zu verwenden. So eine Unverschämtheit, echt ma.

      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
      1. @@hotti:

        nuqneH

        Ich frag mich manchmal auch, wer auf die bescheuerte Idee gekommen ist, ausgerechnet den Slash "/" als Trennzeichen für Verzeichnisse zu verwenden.

        Microsoft war’s nicht.

        Qapla'

        --
        Bildung lässt sich nicht downloaden. (Günther Jauch)
        1. »» Ich frag mich manchmal auch, wer auf die bescheuerte Idee gekommen ist, ausgerechnet den Slash "/" als Trennzeichen für Verzeichnisse zu verwenden.

          Microsoft war’s nicht.

          stimmt, die verwenden lieber ein Backslash "" ...

          was daran jetzt besser sein soll, weiß ich jedoch nicht

          1. Hello,

            »» Ich frag mich manchmal auch, wer auf die bescheuerte Idee gekommen ist, ausgerechnet den Slash "/" als Trennzeichen für Verzeichnisse zu verwenden.

            Microsoft war’s nicht.

            stimmt, die verwenden lieber ein Backslash "" ...

            was daran jetzt besser sein soll, weiß ich jedoch nicht

            Und genau dieser Backslash wird nun wieder bei den unixoiden Betriebssystemen dazu benutzt, um Sonderzeichen im Dateinamen zu maskieren. Wenn also ein Pfad z.B. ein Leerzeichen oder ein Fragezeichen enthält, dann man das mit dem Backslash maskieren

            /home/thomas/besondere\ Datei\ mit\ Leerzeichen/oder/auch/einem\ /\ im Pfad

            egibt im Script dann diese Teilpfade:

            home
                thomas
                besondere Datei mit Leerzeichen
                oder
                auch
                einem / im Pfad

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
  2. Hallo,

    Wenn ich nun aber ein Dokument der Form abc%2Fdef.php in den Ordner Bibliothek hochlade und im Browser aufzurufen versuche, erhalte ich die Fehlermeldung
    "The requested URL /Bibliothek/abc%2Fdef.php was not found on this server"

    was nicht weiter verwunderlich ist.

    Sieht so aus, als würde der Browser den ersten Teil, also das abc, als Ordnername interpretieren und darin das Dokument def.php suchen, statt das Dokument abc%2Fdef.php aufzurufen.

    Nein, nicht der Browser, sondern der Server. Er bekommt einen Request nach abc%2Fdef.php, löst die darin enthaltene Maskierung korrekt auf abc/def.php auf, und versucht nun abc/def.php im Dateisystem zu finden.

    Gibt es irgendeine Möglichkeit, einen Dokumentnamen mit Schrägstrich zu nutzen?

    Nur wenn du den Dateipfad auf der Serverseite selbst auswertest (informiere dich z.B. über $_SERVER['PATH_INFO']) und den Slash '/', der in Dateinamen nicht zulässig ist, entsprechend umcodierst. Da ist dann aber Handarbeit angesagt.

    So long,
     Martin

    --
    Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
    Erfahrung bekommt man, indem man das nicht tut.
  3. @@MSchnitzler2000:

    nuqneH

    Wenn ich nun aber ein Dokument der Form abc%2Fdef.php in den Ordner Bibliothek hochlade

    Dann heißt die Datei auch so: "abc%2Fdef.php".

    und im Browser aufzurufen versuche, erhalte ich die Fehlermeldung
    "The requested URL /Bibliothek/abc%2Fdef.php was not found on this server"

    Warum, hat Der Martin ja schon gesagt.

    Über …/Bibliothek/abc%252Fdef.php solltest du die Ressource bekommen.

    Das ist aber nicht das, was du willst. Überlege, wann du welche Zeichen maskieren musst.

    Qapla'

    --
    Bildung lässt sich nicht downloaden. (Günther Jauch)
    1. Moin allerseits,

      | Wenn ich nun aber ein Dokument der Form abc%2Fdef.php in den Ordner Bibliothek hochlade

      Dann heißt die Datei auch so: "abc%2Fdef.php".

      Nur mal so eine Idee: Versuch doch einfach %2F noch einmal zu kodieren. Ich glaube, ich hatte schonmal ein ähnliches Problem gehabt und so die Lösung gefunden.

      Mal was anderes: Wie sollen denn deine PHP-Dateien heißen? "Das Dreck / Die Abfall.php" oder wie? Und wie soll nachher die URL dazu aussehen? www.meinelibenbuecher.de/das dreck / die abfall.php ? Soll das nachher so übers Netz aufrufbar sein? Sonst versuche es doch mit mod_rewrite oder sonst einem ähnlichen Ansatz.

      Grüße, JN

      --
      ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
      http://www.johny7.de
  4. Danke für eure Erklärungen und Lösungsversuche!
    Ich hatte gehofft, dass mir vielleicht ein Fehler unterlaufen ist oder dass es eine andere relativ simple Lösung gibt. Aber ich merke schon, dass sich mein Problem wenn überhaupt nur mit großem Aufwand lösen lässt. Das lohnt sich für so eine Kleinigkeit nicht.