468,771 Members | 1,878 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,771 developers. It's quick & easy.

"&" In QueryString

A link has the following URL:

<a href="Page1.asp?cname=<%= Request.QueryString("cname") %>&cadd1=<%=
Request.QueryString("cadd1") %>&cadd2=<%= Request.QueryString("cadd2")
%>&cplace=<%= Request.QueryString("cplace") %>">Click</a>

Suppose the names in the above querystring have the following values:

cname="Danny"
cadd1="House 97"
cadd2="Sector 3 & 4"
cplace="Timbaktoo"

Becuase of the presence of an ampersand (&) in the value of cadd2 (between 3
and 4), the next page doesn't get the correct querystring. The querystring
carried forward to the next page looks something like this:

Page1.asp?cname=Danny&cadd1=House%2097&cadd2=Secto r 3

That's it!!! Now how do I ensure that the presence of ampersand in any value
of the querystring doesn't affect the querystring in any way & the next page
gets the correct querystring? I even tried using Server.URLEncode but that
didn't make any difference.

Thanks,

Arpan
Jul 19 '05 #1
3 16951
An easy way is to replace it with anything then replace that thing with it
again when you receive it.

For example:

<%
cadd2 = Replace(cadd2, "&", "zxc")
%>
<a href=page1.asp?cadd2=<%=cadd2%>&...>Click</a>

When you receive it,

<%
cadd2 = Replace(Request.QueryString("cadd2"), "zxc", "&")
%>

Mohamed

"Arpan" <ar******@hotmail.com> wrote in message
news:up**************@TK2MSFTNGP12.phx.gbl...
A link has the following URL:

<a href="Page1.asp?cname=<%= Request.QueryString("cname") %>&cadd1=<%=
Request.QueryString("cadd1") %>&cadd2=<%= Request.QueryString("cadd2")
%>&cplace=<%= Request.QueryString("cplace") %>">Click</a>

Suppose the names in the above querystring have the following values:

cname="Danny"
cadd1="House 97"
cadd2="Sector 3 & 4"
cplace="Timbaktoo"

Becuase of the presence of an ampersand (&) in the value of cadd2 (between 3 and 4), the next page doesn't get the correct querystring. The querystring
carried forward to the next page looks something like this:

Page1.asp?cname=Danny&cadd1=House%2097&cadd2=Secto r 3

That's it!!! Now how do I ensure that the presence of ampersand in any value of the querystring doesn't affect the querystring in any way & the next page gets the correct querystring? I even tried using Server.URLEncode but that
didn't make any difference.

Thanks,

Arpan

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.525 / Virus Database: 322 - Release Date: 10/9/2003
Jul 19 '05 #2
> gets the correct querystring? I even tried using Server.URLEncode but that
didn't make any difference.


Can you show the code you used, and how it "didn't make any difference"?
Server.URLEncode should encode your spaces and special characters so that
they are passed correctly in the URL and are fully recoverable by the
receiving page.
Jul 19 '05 #3
Thanks Aaron. Actually I had to re-model the application where in a user
clicks a link in Page1.asp (href of the link along with the entire
querystring being the same as what I had provided in my first question). Due
to some reasons, I am assigning the href of the link in Page1.asp using
JavaScript (though it could have been done using ASP as well). Assume that
clicking this link takes the user to Page2.asp. In the JavaScript code in
Page1.asp (which directs the user to Page2.asp), I have used the function
decodeURI so that the ampersand existing within a value in the querystring
gets passed on to Page2.asp. As expected, Page2.asp gets the querystring in
the correct format. The querystring looks something like this:

?cname=Danny&cadd1=House 97&cadd2=Sector 3 & 4&cplace=Timbaktoo

Page2.asp has another link, clicking which the user is taken back to
Page1.asp along with the entire querystring. This is the code which creates
the link (note that I have encompassed the value of cadd2 in
Server.URLEncode()):

<a href="Page1.asp?cname=<%= Request.QueryString("cname") %>&cadd1=<%=
Request.QueryString("cadd1") %>&cadd2=<%=
Server.URLEncode(Request.QueryString("cadd2") %>&cplace=<%=
Request.QueryString("cplace") %>

But when the user goes back to Page1.asp, the querystring in Page1.asp looks
like this:

?cname=Danny&cadd1=House+97&cadd2=Sector+3+&cplace =Timbaktoo

Please note that in the value of cadd2, the characters "& 4" have been
neglected. I hope I have taken the right approach. Could you please try to
sort out this problem?

Thanks,

Regards,

Arpan
"Aaron Bertrand [MVP]" <aa***@TRASHaspfaq.com> wrote in message
news:uQ*************@TK2MSFTNGP11.phx.gbl...
gets the correct querystring? I even tried using Server.URLEncode but that didn't make any difference.


Can you show the code you used, and how it "didn't make any difference"?
Server.URLEncode should encode your spaces and special characters so that
they are passed correctly in the URL and are fully recoverable by the
receiving page.

Jul 19 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by barney | last post: by
5 posts views Thread by martin | last post: by
2 posts views Thread by Mehdi | last post: by
5 posts views Thread by chortler | last post: by
2 posts views Thread by beachboy | last post: by
1 post views Thread by EoRaptor013 | last post: by
3 posts views Thread by Tanmaya Kulkarni | last post: by
reply views Thread by zhoujie | last post: by
1 post views Thread by Marin | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.