アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めまして。kuro917と申します。
cgiで、GET形式で&を渡したいのですが、うまくできません。

たとえば、
<form method="POST" action="test.cgi">
<input type="hidden" name="abc" value="def&ghi&jkl">
<input type="submit" value="送信">
だと、正常に値が渡されますが、

test.cgi?abc=def&ghi&jkl
だと、うまく渡されません。
これは、区切り記号が&だからだと思いますが、どうしたらよいでしょうか><

ちなみに、値の&を%26に置き換えては見ましたが、結果は変わりませんでした。

どうしても、GET形式で&を渡したいのですが・・・。
できればcgiプログラムを変えない方法でお願いします。m(_ _)m

A 回答 (3件)

test.cgi?abc=def%26ghi%26jkl でアクセスした時、普通は abc には "def&ghi&jkl" が入ると思います。



疑うべき所はいろいろあるのですが、まずは状況の説明が不足です。

「うまくできません。」だけでは無く、 abc に何が入るのかを書いてください。

あと、postメソッドの FORM ではOKとの事ですが、method="get" の FORM ではどうなりますか?
# 例え使いたく無くとも、テストの結果は重要です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事に&を渡すことができました。
原因はほかの所にあったみたいです。(渡すべき値が漏れていた)
最後に、返信が遅れたことをお詫びいたします。

お礼日時:2009/02/06 18:34

まさかとは思いますが、



<form method="POST" action="test.cgi?abc=def%26ghi%26jkl">

なんて書いたんじゃ無いですよね?


<a href="test.cgi?abc=def%26ghi%26jkl">送信</a> だと、画面の体裁以外に問題がありますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事に&を渡すことができました。
原因はほかの所にあったみたいです。(渡すべき値が漏れていた)
最後に、返信が遅れたことをお詫びいたします。

お礼日時:2009/02/06 18:34

フォームを使わずに直接、データをURLに渡すなら%エンコード(URLエンコード)するのは当然ですが、


受信データをどのようにパースしていますか。
最初に、$ENV{'QUERY_STRING'}の値をデコードし、それから項目分解、変数代入という順にやっていませんか。
もしそうであるなら、「%26」が「&」に変換されてから、「&」で項目分解するわけですからうまくいくはずがありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事に&を渡すことができました。
原因はほかの所にあったみたいです。(渡すべき値が漏れていた)
最後に、返信が遅れたことをお詫びいたします。

お礼日時:2009/02/06 18:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!