Sonderzeichen im Querystring
Utz Grimminger
- asp.net
Hi zusammen,
kurz vor Feierabend ereilt mich hier ein Problem, das mich ratlos hinterlässt. Folgendes:
Eines unserer Produkte kann via Internet Support-Seiten aufrufen. Da der Querystring des Aufrufes aber irgendwo aus der Versionsnummer ausgelesen wird, endet der Querystring mit "P=OBJECTIF®"
In der entsprechenden ASP-Seite gibt's da ne passende Abfrage zu:
select case request.querystring("P")
...
case ("OBJECTIF®")
productname="objectiF"
...
end select
Im NS und IE funzt das prima - aber nur unter NT! Unter Win95 und Win98 spucken sowohl NS als auch IE Fehlermeldungen aus.
Hat jemand ne Ahnung woran es liegt bzw. wie ich das in Griff kriege?
Danke!
Grüße,
Utz
Eines unserer Produkte kann via Internet Support-Seiten aufrufen. Da der Querystring des Aufrufes aber irgendwo aus der Versionsnummer ausgelesen wird, endet der Querystring mit "P=OBJECTIF®"
In der entsprechenden ASP-Seite gibt's da ne passende Abfrage zu:select case request.querystring("P")
...
case ("OBJECTIF®")
»» productname="objectiF"
...
end select
Hallo,
zuerst einmal wäre die entsprechende Fehlermeldung sicherlich sehr
hilfreich gewesen. Naja, beim nächsten Mal.
Generell sollte man Daten, die per GET (QueryString) übermittelt werden,
per Server.URLEncode(Text) übergeben werden. In Deinem Fall wäre das
dann: <a href="test.asp?P=<%=Server.URLEncode("OBJECTIF®")%>">Link</a>
Wenn sich das im Programm ändern läßt, ist diese Methode auf jeden Fall vorzuziehen.
Wenn nicht, kannst Du auch folgendermaßen abfragen:
Select Case Server.HTMLEncode(Request.QueryString("P"))
Case Server.HTMLEncode("OBJECTIF®"): ...
End Select
Das sollte auch funktionieren.
Tschau, Stefan
Hi Stefan,
zuerst einmal wäre die entsprechende Fehlermeldung sicherlich sehr
hilfreich gewesen. Naja, beim nächsten Mal.
In diesem Fall zur Abwechslung mal nicht - wenn die selet case-Liste erfolglos durchlaufen wurde, wird dann halt eine Seite error.asp aufgerufen, die sagt, dass es nicht geklappt hat. Ist ja auch kein Wunder, es wird der passende Eintrag halt einfach nicht gefunden.
Generell sollte man Daten, die per GET (QueryString) übermittelt werden,
per Server.URLEncode(Text) übergeben werden. In Deinem Fall wäre das
dann: <a href="test.asp?P=<%=Server.URLEncode("OBJECTIF®")%>">Link</a>
Wenn sich das im Programm ändern läßt, ist diese Methode auf jeden Fall vorzuziehen.
Verständnisfrage: Geht ein solcher Aufruf wirklich von überall her? Oder nur von ner ASP-Seiite aus?
Wenn nicht, kannst Du auch folgendermaßen abfragen:
Select Case Server.HTMLEncode(Request.QueryString("P"))
Case Server.HTMLEncode("OBJECTIF®"): ...
End SelectDas sollte auch funktionieren.
Tja, leider nicht. Das selbe Problem wie bisher - unter NT läufts, unter Win95 und Win98 nicht.
Trotzdem danke!
Grüße,
Utz