出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[4544] NNでQueryStringの取得 |
投稿者:ともぽんさん 2004/07/30 0:28:11 |
はじめまして。 現在NN4.7にてASPの開発を行っております。 エンコードしたURLで画面遷移を行うのですが、QueryStringが複数あり、IEでは取得できますが、&が&に変換されるせいか、NNだとうまく取得できません。 どなたか知恵を貸してください。 <a href="<%Server.HtmlEncode(http://www.XXX.co.jp?test=1&test=2)%>">TEST</A> ↓ http://www.XXX.co.jp?test=1&test2=2 取得後 test = 1 test2="" |
[4545] Re:NNでQueryStringの取得 |
投稿者:Lightningさん 2004/07/30 11:44:31 |
> はじめまして。 > 現在NN4.7にてASPの開発を行っております。 > エンコードしたURLで画面遷移を行うのですが、QueryStringが複数あり、IEでは取得できますが、&が&に変換されるせいか、NNだとうまく取得できません。 > どなたか知恵を貸してください。 > > <a href="<%Server.HtmlEncode(http://www.XXX.co.jp?test=1&test=2)%>">TEST</A> > ↓ > http://www.XXX.co.jp?test=1&test2=2 > > 取得後 > test = 1 > test2="" 解決案ではなく、代替案ですが・・・ Getで送信するのが必須だと使えませんけども・・・ <form action="http://www.XXX.jp" method="post" name="F1"> <input type="hidden" name="test1" value=1> <input type="hidden" name="test2" value=2> </form> <a href="#" onclick="document.F1.submit();">test</a> っていうのはどうでしょうか? 個人的にGet送信は嫌い(URLを書き換えられると厄介(−−;)なのでよくこの手のことをするんですが |
[4548] Re:NNでQueryStringの取得 |
投稿者:ともぽんさん 2004/07/30 14:42:00 |
> > はじめまして。 > > 現在NN4.7にてASPの開発を行っております。 > > エンコードしたURLで画面遷移を行うのですが、QueryStringが複数あり、IEでは取得できますが、&が&に変換されるせいか、NNだとうまく取得できません。 > > どなたか知恵を貸してください。 > > > > <a href="<%Server.HtmlEncode(http://www.XXX.co.jp?test=1&test=2)%>">TEST</A> > > ↓ > > http://www.XXX.co.jp?test=1&test2=2 > > > > 取得後 > > test = 1 > > test2="" > 解決案ではなく、代替案ですが・・・ > Getで送信するのが必須だと使えませんけども・・・ > > <form action="http://www.XXX.jp" method="post" name="F1"> > <input type="hidden" name="test1" value=1> > <input type="hidden" name="test2" value=2> > </form> > <a href="#" onclick="document.F1.submit();">test</a> > > っていうのはどうでしょうか? > 個人的にGet送信は嫌い(URLを書き換えられると厄介(−−;)なのでよくこの手のことをするんですが コメントありがとうございます。 既存のシステムの仕様でQueryStringで渡すようになっていて・・・ 困ってます。 でもHiddenで渡した方が確かですよね・・・ |
[4546] Re:NNでQueryStringの取得 |
投稿者:暇人さん 2004/07/30 13:01:11 |
> <a href="<%Server.HtmlEncode(http://www.XXX.co.jp?test=1&test=2)%>">TEST</A> URLなのでURLEncodeで良いのではないでしょうか? <a href="http://www.XXX.co.jp?<%Server.URLEncode("test=1&test=2")%>">TEST</A> |
[4547] Re:NNでQueryStringの取得 |
投稿者:ともぽんさん 2004/07/30 14:38:39 |
> > <a href="<%Server.HtmlEncode(http://www.XXX.co.jp?test=1&test=2)%>">TEST</A> > > URLなのでURLEncodeで良いのではないでしょうか? > <a href="http://www.XXX.co.jp?<%Server.URLEncode("test=1&test=2")%>">TEST</A> > > > <a href="<%Server.HtmlEncode(http://www.XXX.co.jp?test=1&test=2)%>">TEST</A> > > URLなのでURLEncodeで良いのではないでしょうか? > <a href="http://www.XXX.co.jp?<%Server.URLEncode("test=1&test=2")%>">TEST</A> > 実はURLEncodeを行う前に、Server.URLEncodeも行っています(..) システムの仕様で遷移時にはどちらも使うようになっているんです。 IEでは問題ないのですが・・・ ちなみにエンコード後の http://・・・・?test=1&test2=2 から Request.QueryString("amp;test2")としたら値が取得できました。 でも現実的でないので、困ってます。 URLEncode、HTMLEncodeで2重にエンコードすると、文字列として認識されちゃってるんでしょうか。 |
[4549] Re:NNでQueryStringの取得 |
投稿者:Lightningさん 2004/07/30 15:54:11 |
ん?・・・んん? Server.HTMLEncodeってなってますけど、URLEncodeをしてるんですよね? 単に記述間違いじゃなくて・・・? 今、確認してみたところ <%=Server.URLEncode(Server.HTMLEncode("test1=1&test2=2"))%><br> <%=Server.HTMLEncode(Server.HTMLEncode("test1=1&test2=2"))%> の結果は test1%3D1%26amp%3Btest2%3D2 test1=1&test2=2 でした。 <%=Server.URLEncode(Server.URLEncode("test1=1&test2=2"))%><br> <%=Server.HTMLEncode(Server.URLEncode("test1=1&test2=2"))%> の結果は test1%253D1%2526test2%253D2 test1%3D1%26test2%3D2 でした。 ということでURLEncodeをしているつもりでHTMLEncodeしてませんか? |
[4550] Re:NNでQueryStringの取得 |
投稿者:Lightningさん 2004/07/30 15:58:21 |
あ、もしかして、このリンクを吐き出す処理で既にHTMLEncodeをしていて、URLEncodeをすると&ampになるってことか(気付けよ私 まぁ、それでも、さっきの書き込みを見てもらえればわかりますけど <%=Server.HTMLEncode(Server.URLEncode("test1=1&test2=2"))%> の結果が test1%3D1%26test2%3D2 なわけですから、いけると思うんですけど。 <%=Server.HTMLEncode(Server.HTMLEncode("test1=1&test2=2"))%> の結果が test1=1&test2=2 になっているところから、URLEncodeとするところでHtmlEncodeしてる可能性が高いですね |
[4551] Re:NNでQueryStringの取得 |
投稿者:ともぽんさん 2004/08/02 10:21:54 |
> あ、もしかして、このリンクを吐き出す処理で既にHTMLEncodeをしていて、URLEncodeをすると&ampになるってことか(気付けよ私 > > まぁ、それでも、さっきの書き込みを見てもらえればわかりますけど > > > <%=Server.HTMLEncode(Server.URLEncode("test1=1&test2=2"))%> > の結果が > test1%3D1%26test2%3D2 > なわけですから、いけると思うんですけど。 > > <%=Server.HTMLEncode(Server.HTMLEncode("test1=1&test2=2"))%> > の結果が > test1=1&test2=2 > になっているところから、URLEncodeとするところでHtmlEncodeしてる可能性が高いですね うーん。うまくいきませんでした(@@) サニタイジングが目的なので、しつこく遷移するごとにURLEncode・HtmlEncodeを行ってあるんですが、どうも画面遷移後にHtmlEncodeを行ってさらに次に遷移したときに文字列として認識してしまうみたいです。 なので、「&」に関してはHtmlecodeしないよう力技で応急処置してしまいました。 アドバイスありがとうございます。 |
TreeBBS For ASP V.0.1.3 |