Urlencode-Problem

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

  • Urlencode-Problem

    Hi
    Ich komme mit einem banalen Beispiel mit 2 Browsern auf unterschiedliche Resultate. Ich habe hier 3 kleine Testdateien:

    url1.php
    <?php
    $kunde = "Atlas Flugwerke AG";
    $kunde = rawurlencode($kunde);
    echo "<a href='url2.php?kunde=$kunde'>Weiter zur 2. Seiten</a>";
    ?>

    url2.php
    <?php
    $lieferant = "Atlas Flugwerke AG";
    $lieferant = rawurlencode($lieferant);
    echo "<a href='url3.php?kunde=$kunde&lieferant=$lieferant'>Weiter zur 3. Seite</a>";
    ?>

    url3.php
    <?php
    echo "Kunde: $kunde";
    echo "<br>";
    echo "Lieferant: $lieferant";
    ?>

    Netscape 4.78 liefert als Antwort:
    Kunde: Atlas
    Lieferant:

    IE 6.0 liefert als Antwort:
    Kunde: Atlas Flugwerke AG
    Lieferant: Atlas Flugwerke AG

    NS scheint also selber zu entcoden und verstümmelt beim weiterreichen der Variablen das Resultat. Kennt jemand das Problem resp. eine Lösung dafür?

    Das Argument ohne NS 4.X zu arbeiten geht leider nicht durch.

    Gruss
    Borsi

  • #2
    IE3, 4 und 5 liefern die gleiche Antwort wie IE6.
    Eben weil sie sich von den Leerzeichen nicht irritieren lassen.
    Und die Netscapes behandeln das auch alle gleich: nämlich Leerzeichen=Zeilenende. Schauen wir uns das mal genau an:

    url1.php
    $kunde = rawurlencode("Atlas Flugwerke AG");
    also href="url2.php?kunde=Atlas+Flugwerke+AG"

    url2.php
    hier sind die Plus-Zeichen von PHP wieder automatisch in Leerzeichen verwandelt worden und der Link zur 3. Seite sieht so aus: "url3.php?kunde=Atlas Flugwerke AG&lieferant=Atlas+Flugwerke+AG"

    in url3.php wären im Netscape jetzt die Plus-Zeichen aus $lieferant verschwunden, wenn er nicht beim ersten Leerzeichen in der URL annehmen würde, dass die URL zu Ende ist.

    Lösung: erweitere url2.php durch $kunde = rawurlencode($kunde); und alles ist in Butter!
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hallo Titus

      Mit anderen Worten muss man eine Variable, die man von Seite zu Seite weitergibt für den NN ständig neu urlencoden.

      Zumindest verträgt der IE diese Massnahme auch. Meine Lösung scheint zu laufen.

      Besten Dank, Titus!!!

      Kommentar

      Lädt...
      X