unterschiedliche Browsercodierung der LinkURLs
Siegurd
- browser
Hi, ihr lieben Experten.
Ich habe ein kleines Problem mit einer Webseite, sie ist in php geschrieben und setzt auf eine Datenbank auf. Einzelne Elemente der Datenbank lassen sich dann auf einer php-Seite anzeigen und enthalten da ein paar Links.
So weit so gut, komischerweise werden Trenner in den URLs auf den Seiten hin und wieder unterschiedlich dargestellt, meistens richtig mit "|" hin und wieder allerdings mit "%7c", was nicht richtig ist. Die Codierung der Webseite ist in ISO-8859-1. Im Firefox wird mir unter Anzeigemodus Kompatibilitätsmodus (Quirks) angezeigt...
Kann mir jemand erklären, warum mal das eine und mal das andere benutzt wird? Ich hab da echt keine Idee.
Vielen Dank für Eure Hilfe,
Siegurd!
hi,
So weit so gut, komischerweise werden Trenner in den URLs auf den Seiten hin und wieder unterschiedlich dargestellt, meistens richtig mit "|" hin und wieder allerdings mit "%7c", was nicht richtig ist.
Also meistens falsch als |, hin und wieder allerdings mit %7c, was richtig ist.
Das Zeichen | ist in einem URL nicht erlaubt, _muss_ also entsprechend kodiert werden.
Kann mir jemand erklären, warum mal das eine und mal das andere benutzt wird? Ich hab da echt keine Idee.
Weil manche Browser dein Versäumnis, das nicht erlaubte Sonderzeichen passend zu kodieren, nachholen - andere nicht.
Nutze urlencode().
gruß,
wahsaga
Danke, wahsaga!
Also meistens falsch als |, hin und wieder allerdings mit %7c, was richtig ist.
Das Zeichen | ist in einem URL nicht erlaubt, _muss_ also entsprechend kodiert werden.
Nein, da hast Du mich missverstanden, das Zeichen | ist genau, was da IMMER stehen soll, da es als Trenner genutzt wird. Als kleine Anmerkung muss ich wohl dazusagen, dass das Protokoll nicht HTTP ist, sondern ein eigenes, daher stört das | in der URL auch nicht.
Beispiel-URL: protokoll://|param1|param2|param3
falsch wäre: protokoll://%7cparam1%7cparam2%7cparam3
Nur leider kommt das falsche hin und wieder auch mal vor, wenn auch selten... woran könnte das liegen? Wenn es falsch ist, dann im IE7 und im FF, andere Browser hab ich nicht getestet, aber das sind dann ohnehin schon zu viele...
Weil manche Browser dein Versäumnis, das nicht erlaubte Sonderzeichen passend zu kodieren, nachholen - andere nicht.
Nutze urlencode().
gruß,
wahsaga
Das ist ja nett vom Browser, dass er es naträglich ausführt, nur warum dann nicht immer, der code an der Stelle ändert sich ja schließlich nicht..?
Siegurd!