webForumDet fria alternativet

Flera querystrings i en url

Webbutveckling

2 svar · 479 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Följande rad:

<a href="inbox.asp?kid=<%=RecSet("id")%>&pid=<%=Request.Querystring("pid")%>"><%=RecSet2("pop3name")%>

denna fungerar inte i wml av någon anledning. den kan t.ex se ut såhär:

<a href="inbox.asp?kid={EE1B4AA8-F235-4A1A-9D2F-2305970B451C}&pid={EE1B4AA8-F235-4A1A-9D2F-2305970B451C}">Gein</a><br/>

Det blir fel och jag provade köra den genom w3c validate och dom tycker

Line 13, column 35:
... B4AA8-F235-4A1A-9D2F-2305970B451C}&pid={EE1B4AA8-F235-4A1A-9 ...
^Error: unknown entity "pid"

verkar problem med att köra fler querystrings.. någon som vet felet?

problemet uppstår bara i wml format

Medlem sedan juli 20013 378 inlägg
#2

WML är ett XML-baserat textformat.
Det innebär bl.a. att tecknet "&" är reserverat (för "entiteter" ;) ) och inte kan användas hursomhelst.

I ditt fall tror validatorn att &pid=... är en felaktigt formulerad entitet (den tror att du menar entiteten
&pid; ;) ) - och det löser du antagligen smidigast
genom att använda (entiteten) "&amp;" istället.

(redigering : felaktigt trams om URL-encoding borttaget - tack för påpekandet spango :bire )

Mer om URL-kodning: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

Mer om entiteter i XML: http://www.algonet.se/~eva/ref/xml/dtd/entiteter.html

Medlem sedan juni 20008 205 inlägg
#3

&-tecken ska inte URL-kodas, eftersom browsern då skulle tro att kid hade värdet {EE1B4AA8-F235-4A1A-9D2F-2305970B451C}&pid={EE1B4AA8-F235-4A1A-9D2F-2305970B451C}, i stället för att kid och pid är två olika variabler. Använd entiteter rakt igenom:

<a href="inbox.asp?kid=<%=RecSet("id")%>[b]&amp;amp;[/b]pid=<%=Request.Querystring("pid")%>">
248 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)