Klaus Karnbrock: Variablenübergabe

Hallo!

Ich möchte folgenden Link benutzen und die Variable showtxt damit an die Datei p1_show.php3 übergeben:

So geht's:
<a href="p1_show.php3?showtxt=../data/abc2.txt">

So geht's NICHT:

<a href="p1_show.php3?showtxt=../../data/abc2.txt">

Klappt also prima, solange nicht die Zeichenfolge ../../ verwendet wird (um in einen übergeordneten Ordner zu verzweigen).

Warum ???
Vielen Dank im voraus
Klaus

  1. Hallo Klaus!

    <a href="p1_show.php3?showtxt=../data/abc2.txt">

    verzweigt EIN Verzeichnis nach oben

    <a href="p1_show.php3?showtxt=../../data/abc2.txt">

    verzweigt ZWEI Verzeichnisse nach oben

    ob Du 1 x ../ oder 10 x ../ verwendest, ist dabei egal, solange Du das vom Dateisystem her darfst (vorhanden + berechtigt).

    es waere vielleicht interessant, die verzeichnisstruktur mit dieser datei und den auswertenten teil des scriptes zu sehen.

    Gruß
    Thomas

    1. Hallo Thomas,

      tatsächlich erreichen möchte ich ein Verzeichnis, das zwei Stufen höher ist (deshalb ../../). Es ist hier KEIN Problem von Berechtigungen etc. Das Verzeichnis existiert exakt an dieser Stelle und ich habe die Berechtigung, darin zu lesen.
      Versuche ich etwa mit
      <a href="../../data/abc2.txt"> direkt die Datei anzuspringen, tritt kein Problem auf!

      Ich vermute vielmehr, dass es ein Problem mit exakt dieser Folge von Zeichen gibt. Ein Indiz dafür ist, dass beim Aktivieren des Links in der Statuszeile nicht etwa

      http://www.homepage.de/include/p1_show.php3?showtxt=../../data/abc2.txt

      erscheint, sondern vielmehr

      http://www.homepage.de/include/data/abc2.txt

      Gruß
      Klaus

      1. Hallo Klaus!

        Leider habe ich jetzt keine Zeit, um eine Loesung dafuer zu finden. Ich kann Dir nur einen Workaround anbieten:

        adressiere absolut

        oder

        verwende zb: showtxt=2UP/data/abc.txt
        das 2UP/ ersetzt Du dann mit Hilfe eines regulaeren Ausdruckes durch 2x ../

        Gruß
        Thomas

      2. Ich vermute vielmehr, dass es ein Problem mit exakt dieser Folge von Zeichen gibt. Ein Indiz dafür ist, dass beim Aktivieren des Links in der Statuszeile nicht etwa

        http://www.homepage.de/include/p1_show.php3?showtxt=../../data/abc2.txt

        erscheint, sondern vielmehr
        http://www.homepage.de/include/data/abc2.txt

        Das sieht so aus, als würde jemand versuchen, diesen "Pfad" zu "optimieren", der nicht versteht, daß "?" ein Trennzeichen sein soll.

        Wer immer das sein mag: Du kannst ihn vermutlich daran hindern, indem Du in Deinem Parameterwert *nicht* das Zeichen "/" als Ebenen-Separator verwendest. sondern ein anderes, neutrales, und dann in Deinem php3-Programm diese Ersetzung wieder rückgängig machst.