/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
unescape i ASP
Fra : Chrisser


Dato : 28-07-03 13:09

Hej
Kan jeg, i ASP, unescape en variabel hentet fra querystring ( og som blev
escapet før afsendelse ) ?
Jeg kan ikke finde en funktion der gør det

Mvh
Chrisser



 
 
Chrisser (28-07-2003)
Kommentar
Fra : Chrisser


Dato : 28-07-03 13:22

Chrisser wrote:
> Hej
> Kan jeg, i ASP, unescape en variabel hentet fra querystring ( og
> som blev escapet før afsendelse ) ?
> Jeg kan ikke finde en funktion der gør det

Jeg retter lige mig selv ( det går ikke for godt lige nu):

Problemet er at en af de variable jeg sender med querystring kan indeholde
eks. '+' og '&', og de er jo forsvundet når de kommer frem da de er blevet
escapet - eller værende opfattet som at et mellemrum er escapet...
Jeg ville helst undgå at skulle sende via en form på det tidspunkt så jeg
ville gerne finde en løsning på ovenstående - det værste er at det jo
sagtens kan dreje sig om flere karakterer, kun tastaturet sætter grænser for
dette...

Er der en nem løsning, eller hur ?


Chrisser




Torben Brandt (28-07-2003)
Kommentar
Fra : Torben Brandt


Dato : 28-07-03 16:32

Chrisser wrote:
> Problemet er at en af de variable jeg sender med querystring kan indeholde
> eks. '+' og '&', og de er jo forsvundet når de kommer frem da de er blevet
> escapet - eller værende opfattet som at et mellemrum er escapet...
> Jeg ville helst undgå at skulle sende via en form på det tidspunkt så jeg
> ville gerne finde en løsning på ovenstående - det værste er at det jo
> sagtens kan dreje sig om flere karakterer, kun tastaturet sætter grænser for
> dette...
>
> Er der en nem løsning, eller hur ?

Du skal bare bruge Server.UrlEncode og Request.QueryString.
Eksempel (kald den test.asp):

<%
' Vi henter fra querystrengen:
Response.Write Request.QueryString("noget")

' Den variabel vi vil overføre til en anden side:
var = "dig&mig+de andre"
%>

<a href="test.asp?noget=<%= Server.UrlEncode(var) %>">link</a>


/Torben


Chrisser (29-07-2003)
Kommentar
Fra : Chrisser


Dato : 29-07-03 08:21

Torben Brandt wrote:
> Du skal bare bruge Server.UrlEncode og Request.QueryString.
> Eksempel (kald den test.asp):
>
> <%
> ' Vi henter fra querystrengen:
> Response.Write Request.QueryString("noget")
>
> ' Den variabel vi vil overføre til en anden side:
> var = "dig&mig+de andre"
> %>
>
> <a href="test.asp?noget=<%= Server.UrlEncode(var) %>">link</a>

Ja jo, det løser desværre ikke helt mit problem, jeg prøver lige igen og
håber at jeg er lidt bedre til at formulere mig idag

Jeg har et antal muligheder i en selectboks som er en del af en form. Når
jeg vælger en af disse muligheder bruger jeg eventen onchange til at kalde
et JavaScript som kalder en side med den valgte option som en del af
QueryString. Denne variabel skal hives ud via ASP.
Derudover skal min form submittes og gemmes ned i en database - dette sker
ikke på samme tidspunkt, men det forhindrer mig i at Server.UrlEncode
værdierne i selectboksen da de så vil blive gemt ned i min database med
'%2E' i stedet for '.' ( svjh ) osv.

Problem:
Jeg kan ikke få '+' ( og hvem ved hvilker andre tegn jeg heller ikke kan få
med over... ) ordenligt igennem ved at escape i JavaScriptet, og jeg kan
ikke på asp siden decode min variabel før jeg putter den i databasen. Eller
hvad ?

Øh, og nu kan det jo være at det her går hen og bliver clientside, men da
jeg helst vil finde en løsning i asp bliver jeg her indtil videre...

Mvh
Chrisser



Torben Brandt (30-07-2003)
Kommentar
Fra : Torben Brandt


Dato : 30-07-03 00:10

Chrisser wrote:
> Torben Brandt wrote:
>
>>Du skal bare bruge Server.UrlEncode og Request.QueryString.
>>Eksempel (kald den test.asp):
>>
>> <%
>> ' Vi henter fra querystrengen:
>> Response.Write Request.QueryString("noget")
>>
>> ' Den variabel vi vil overføre til en anden side:
>> var = "dig&mig+de andre"
>> %>
>>
>> <a href="test.asp?noget=<%= Server.UrlEncode(var) %>">link</a>
>
>
> Ja jo, det løser desværre ikke helt mit problem, jeg prøver lige igen og
> håber at jeg er lidt bedre til at formulere mig idag
>
> Jeg har et antal muligheder i en selectboks som er en del af en form. Når
> jeg vælger en af disse muligheder bruger jeg eventen onchange til at kalde
> et JavaScript som kalder en side med den valgte option som en del af
> QueryString. Denne variabel skal hives ud via ASP.
> Derudover skal min form submittes og gemmes ned i en database - dette sker
> ikke på samme tidspunkt, men det forhindrer mig i at Server.UrlEncode
> værdierne i selectboksen da de så vil blive gemt ned i min database med
> '%2E' i stedet for '.' ( svjh ) osv.
>
> Problem:
> Jeg kan ikke få '+' ( og hvem ved hvilker andre tegn jeg heller ikke kan få
> med over... ) ordenligt igennem ved at escape i JavaScriptet, og jeg kan
> ikke på asp siden decode min variabel før jeg putter den i databasen. Eller
> hvad ?
>
> Øh, og nu kan det jo være at det her går hen og bliver clientside, men da
> jeg helst vil finde en løsning i asp bliver jeg her indtil videre...

Ja, løsningen bliver sådan set clientside, for du laver dine selectbokse
som du normalt ville gøre, så de fungerer ved submit af formen.
Når du så skal overføre dem til querystrengen, så skal du bare bruge
JavaScript-funktionen escape - som virker på samme måde som
Server.UrlEncode.
Jeg har lavet et lille eksempel, og håber at jeg denne gang ramte bedre
plet, ellers må du jo spørge igen :)

Nedenstående gemmes som test.asp:
---------------------------------

Værdi af select1 i QueryString: <%= Request.QueryString("select1") %><br>
Værdi af select1 i Form: <%= Request.Form("select1") %><br>
Værdi af select2 i Form: <%= Request.Form("select2") %><br>
<br>


<form action="test.asp" method="post">
<select name="select1"
onChange="location.href='test.asp?select1='+escape(this.options[this.selectedIndex].value);">
<option value="<%= Request.QueryString("select1") %>"><%=
Request.QueryString("select1") %></option>
<option value="frugt & grønt">Frugt & Grønt</option>
<option value="mad">Mad</option>
</select>

<%
If Request.QueryString("select1") = "frugt & grønt" Then
%>
<select name="select2">
<option value="">&nbsp;</option>
<option value="æble">Æble</option>
<option value="pære">Pære</option>
</select>
<%   
ElseIf Request.QueryString("select1") = "mad" Then
%>
<select name="select2">
<option value="">&nbsp;</option>
<option value="rødgrød med fløde">Rødgrød med fløde</option>
<option value="flæskesteg">Flæskesteg</option>
</select>
<%
End If
%>

<br>
<input type="submit">
</form>

---------------------------------

mvh Torben


Chrisser (30-07-2003)
Kommentar
Fra : Chrisser


Dato : 30-07-03 06:45

Torben Brandt wrote:
> Ja, løsningen bliver sådan set clientside, for du laver dine
> selectbokse
> som du normalt ville gøre, så de fungerer ved submit af formen.
> Når du så skal overføre dem til querystrengen, så skal du bare bruge
> JavaScript-funktionen escape - som virker på samme måde som
> Server.UrlEncode.
> Jeg har lavet et lille eksempel, og håber at jeg denne gang ramte
> bedre
> plet, ellers må du jo spørge igen :)

[snip kode]

Tak for eksemplet, det er sådan cirka hvad jeg selv har prøvet, men
JavaScript's escape nægter altså at bibeholde '+' som bliver til mellemrum,
og jeg har brug for at kunne overføre både '+', mellemrum og egentlig alle
tegn.......
Jeg ved ikke om jeg ville få mit '+' tilbage ved en unescape, men det har
jeg jo ikke mulighed for da jeg skal bruge querystring serverside ( asp ).

X-FUT: dk.edb.webdesign.clientside
- svar på dette indlæg havner i clientsidegruppen


Chrisser



Martin Hintzmann And~ (30-07-2003)
Kommentar
Fra : Martin Hintzmann And~


Dato : 30-07-03 07:45

Chrisser wrote:
> Hej
> Kan jeg, i ASP, unescape en variabel hentet fra querystring ( og som blev
> escapet før afsendelse ) ?
> Jeg kan ikke finde en funktion der gør det
>

Hej Chrisser

I ASP findes der desvære ikke en unescape funktion

Men folkene hos Pstruh har fundet en løsning.
http://www.pstruh.cz/tips/detpg_URLDecode.htm

Håber at du kan bruge den. Jeg har ihvertfald kunne bruge den.

Hintzmann


Chrisser (30-07-2003)
Kommentar
Fra : Chrisser


Dato : 30-07-03 08:02

Martin Hintzmann Andersen wrote:
> Hej Chrisser
>
> I ASP findes der desvære ikke en unescape funktion
>
> Men folkene hos Pstruh har fundet en løsning.
> http://www.pstruh.cz/tips/detpg_URLDecode.htm
>
> Håber at du kan bruge den. Jeg har ihvertfald kunne bruge den.

Det var lige præcis helt nøjagtigt hvad jeg skulle bruge
Takker


Chrisser



Terje (30-07-2003)
Kommentar
Fra : Terje


Dato : 30-07-03 10:18


Heisan.
Jeg fant en annen side med info om dette:
http://www.kamath.com/codelibrary/cl006_url.asp

Er det slik som det hevdes på denne siden, at funksjonen Request.QueryString
dekoder en url automatisk? Er det derfor ASP/VBS ikke har noen URLDecode
funksjon?

terje



Chrisser (30-07-2003)
Kommentar
Fra : Chrisser


Dato : 30-07-03 10:27

Terje wrote:
> Heisan.
> Jeg fant en annen side med info om dette:
> http://www.kamath.com/codelibrary/cl006_url.asp
>
> Er det slik som det hevdes på denne siden, at funksjonen
> Request.QueryString dekoder en url automatisk? Er det derfor
> ASP/VBS ikke har noen URLDecode funksjon?

Ja det tror jeg er rigtigt, det vil være forklaringen på at mine '+' blev
til mellemrum selv om det ikke var meningen. ( da mellemrum jo præsenteres
ved '+' når man urlEncoder en streng).

Det samme sker tilsyneladende ikke hvis data sendes via en form, derfor
havde jeg brug for pågældende funktion sådan at ex: 'to+to=fire' kunne gå
uændret igennem både ved submit af form og ved brug af queryString...


Chrisser



Martin Hintzmann And~ (30-07-2003)
Kommentar
Fra : Martin Hintzmann And~


Dato : 30-07-03 11:40

Terje wrote:
> Heisan.
> Jeg fant en annen side med info om dette:
> http://www.kamath.com/codelibrary/cl006_url.asp
>
> Er det slik som det hevdes på denne siden, at funksjonen Request.QueryString
> dekoder en url automatisk? Er det derfor ASP/VBS ikke har noen URLDecode
> funksjon?
>

Ja, ASP decoder automatisk hvis du request'er på et bestemt parameter
Response.Write Request.QueryString("tekst")

men ikke hvis du spørger på hele URL'en, så er den ikke decodet
Response.Write Request.QueryString

Hvilket er nødvendigt hvis du skal have den præcise rækkefølge af en
forms felter, hvor der er flere felter med samme navn.

Hintzmann


Terje (30-07-2003)
Kommentar
Fra : Terje


Dato : 30-07-03 11:55


"Martin Hintzmann Andersen" <no@spam.dk> wrote in message
news:bg879d$6r6$1@sunsite.dk...
|
| Ja, ASP decoder automatisk hvis du request'er på et bestemt parameter
| Response.Write Request.QueryString("tekst")
|

Takk, da lærte jeg noe nytt. Har jeg rett i at ASP.NET har en URLDecode
eller unescape funksjon? I så fall: har den noen funksjonalitet utover hva
ASP har?

terje



Martin Hintzmann And~ (30-07-2003)
Kommentar
Fra : Martin Hintzmann And~


Dato : 30-07-03 12:20

Terje wrote:
>
> Takk, da lærte jeg noe nytt. Har jeg rett i at ASP.NET har en URLDecode
> eller unescape funksjon? I så fall: har den noen funksjonalitet utover hva
> ASP har?
>

Ja, det har den

Hintzmann


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste