- ベストアンサー
Ruby CGI パラメータ
rubyでCGIのパラメータを一つの変数に&でつないで格納したいです。 (パラメータなしの場合は""にしたい。) ex1) hoge.cgi →para=>"" ex2) hoge.cgi?a=1 →para=>"a=1" ex3 hoge.cgi?a=1&b=2 →para=>"a=1&b=2" どう書いたらよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> rubyでCGIのパラメータを一つの変数に&でつないで格納したいです。 ENV["QUERY_STRING"] に入っている内容そのままでは?
その他の回答 (1)
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.2
POST経由の入力の場合、cgi.rb を使っているのであれば cgi = CGI.new cgi['フィールド名'] で取れます。 http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=cgi#a.a5.d5.a5.a9.a1.bc.a5.e0.a5.d5.a5.a3.a1.bc.a5.eb.a5.c9.a4.ce.c3.cd.a4.f2.c6.c0.a4.eb cgi.rbを使ってなくて自力でやるなら、 ENV[CONTENT_LENGTH]に、POSTされたデータの長さが入っているので、 この長さだけ標準入力から読めば そのまま手に入れられます。 というところでどうでしょうか?
質問者
お礼
sakusaker7さん。いつもありがとうございます。 もう少し自分でマニュアル読むようにします。(^^;
お礼
>ENV["QUERY_STRING"] に入っている内容そのままでは? まさにそうでしたね(^^; ご回答ありがとうございます。 GETに限った質問をしておいてなんなんですが、POSTでも汎用的にCGIのパラメータを一つの変数に&でつないで格納するには、どしたら良いでしょう? POSTだと["QUERY_STRING"] に値が入ってこないようで