webForumDet fria alternativet

&-tecken i querystring

7 svar · 259 visningar · startad av kallepocket

kallepocketMedlem sedan sep. 200182 inlägg
#1

När jag ska skicka med variabler i querystring, så krävs det ibland att jag skickar med ett & tecken i själva variabeln...
Hur gör jag för att lösa detta, för som det är nu blir det massa fel eftersom webbläsaren ser allt efter &-tecknet som en ny string...
Som jag gör nu (nödlösning) byter jag ut (med replace) &-tecknet mot något annat som fungerar, men som inte används så ofta... sen på nästa sida byter jag tillbaka... Detta känns dock som ett onödigt och dumt sätt, och ifall nån vill ha det tecken jag använder (i det här fallet @), så kommer det orsaka problem...

Någon som har några förslag på något bättre sätt att gå runt det här problemet??

Tack!

/KP

jorgenMedlem sedan feb. 20012 412 inlägg
#2

Hej!

Förslag på lösningar, som dock inte löser problemet:

  1. Unvik döpa variabler till något med & i.
  2. Om det finns möjlighet, skicka med det i ett Hidden-formulär istället.

r: Välkommen till wF förresten!

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 27 sep 2001]

@ndersMedlem sedan juni 200032 969 inlägg
#3

Jag hade gett mig på att försöka använda mig av server.urlencode på strängen i fråga.

<a href="bla.asp?bla=<%=server.urlencode(variabeln)%>">bla</a>

Välkommen hit ska du självklart vara också! :)

Mvh,

------------------
All your base are belong to me.

kallepocketMedlem sedan sep. 200182 inlägg
#4

Aha... nu börjar det likna nåt.. ;)

Vad exakt (eller ungefär) gör server.urlencode? Jag förstår att den fixar till strängen så att den passar bättre som url, men jag menar, lite mer ingående vad gör den?

Tack ska ni ha, jag trivs redan här! ;)

/KP

@ndersMedlem sedan juni 200032 969 inlägg
#5

Server.URLEncode byter ut alla specialtecken i en given sträng till dess teckenkod. När du sedan använder värdet på mottagarsidan behöver du inte göra någon sorts decode, utan att ersätta tillbaka görs automatiskt.

Om man ska skicka värden som har mellanslag i sig, så måste man använda urlencode, eller rättare sagt byta bort mellanslagen på något sätt, annars får du ett HTTP 400 felmeddelande om du använder Netscape.

Besvarade det din fråga?

Mvh,

------------------
All your base are belong to me.

kallepocketMedlem sedan sep. 200182 inlägg
#6

Japp... det gjorde det! Tack så mycket!

Nu undrar jag däremot lite över det där med mellanrum... Det är bara i Netscape det gäller eller? För jag tycker aldrig att jag stött på några problem med det, men så kör jag juh IE6 oxå... *hmm*

Efter vilken "syntax" sätter UrlEncode strängarna? Skriver den om &tecken till & (fast det kan den juh inte göra), eller är det till %38 eller nåt sånt där som gäller??

-------------
Kallepocket

@ndersMedlem sedan juni 200032 969 inlägg
#7

Internet Explorer ersätter automatiskt mellanslag i url:er och har således inga problem med det.

Mellanslag ersätts med %20, så jag antar att andra tecken ersätts med % följt av teckenkoden.

Mvh,

------------------
All your base are belong to me.

jorgenMedlem sedan feb. 20012 412 inlägg
#8

Hej!

Sök på server.urlencode uppe till höger. Då får du gott om träffar som ingående behandlar diverse olika problem i querystrings.

Mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)