2011-07-16 24 views
0

私が働いているウェブサイトの一つで、私は次のようになり、各商品ページ(ページのレンダリングから撮影した実際のHTML)上のリンクを持っている:引用符 - ASPクラシック

<a href="contact-us.asp?subject=Question+About+12%22+Knife"> 
    Ask a Question About This Item 
</a> 

<a href="contact-us.asp?subject=Question+About+<%=Server.UrlEncode(sTitle)%>"> 
    Ask a Question About This Item 
</a> 

リンクをクリックすると、予想通り、あなたのアドレスバーでこれを見ます:

http://www.somedomainname.com/contact-us.asp?subject=Question+About+12%22+Knife 
私は、このリンクを生成するために使用してい

実際のコードは次のようになります

ここに問題があります。編集

Dim s 
s = Request.QueryString("subject") 


は、それから私は、入力フィールドの値としてフォームに入れ、私はこのような接触私達のページで値を取得します。それは、このようなフォームフィールドで示しています質問引用符が文字列で発生したときにのみ起こる

12について。どうすればこの問題を解決できますか?

+0

この現象はここでは再現できません(IIS 7/Win7,64bit)。あなたのプラットフォームは何ですか? – Yots

+0

問題の説明を編集しました。私は値全体を取得しないことについては間違っていました。 – HK1

+0

なぜフォームの投稿にQueryStringを使用していますか?HTML POSTとRequest.Formを使用しているはずです –

答えて

5

あなたはおそらく、あなたの結果のHTMLを持っている:

<input value="Question About 12" Knife" /> 

あなたはs = Server.HTMLEncode(s)&quot;として"をエスケープする必要があります。

+1

Request.QueryStringとRequest.Formから常にServer.HTMLEncodeが出力されますが、そうしないと、ウェブサイトがクロスサイトスクリプティング攻撃を受けます。 –

0

私の頭の上から私の最初の推測では、文字列を取り込んだ後に特殊文字を置き換える必要があるということです。おそらくServer.UrlEncodeがあなたの場合に役立ちます。