CGIライブラリ

はじめに

RubyでCGIを作る方法、主にCGIクラスに関するものです。
オブジェクト指向言語Ruby >リファレンスマニュアル >添付ライブラリ >CGI
を参考にCGIクラスを使ってCGIを作ってみましょう。

基本的な使い方

CGIクラスを使った基本的なHTMLの出力は以下のようになります。

#!/usr/local/bin/ruby -Ke
require 'cgi'
cgi = CGI.new()
html = "<html><body>test</body></html>"
cgi.out do
html
end

CGIクラスにはHTML作成用のメソッド類も用意されていますが、 出力用のHTMLの作成は次ページ(HTMLテンプレート)に任せることにします。

フォームデータの受信

Formから送られてくるのデータはcgi['name']で受け取れます。
返り値は配列になっているので、nameに対応するフィールドが一個しかない場合は、cgi['name'].firstで参照します。
以下のフォームでデータの受け取り方を試してみて下さい。

テストフォーム

text:
checkbox: 1 2 3 4
radio: 1 2 3 4
select:

p cgi['text'].first ⇒ nil
p cgi['checkbox'] ⇒ []
p cgi['radio'].first ⇒ nil
p cgi['select'].first ⇒ nil

また、cgi.paramsで、入力データをHashで受け取れます。

p cgi.params ⇒ {}

この受け取ったデータを「判断」、「処理」、「加工」することによってHTMLを作ります。

クッキーを扱う

クッキーを受け取るのは以下のようにします。

key = "COOKIE-KEY"
value = cgi.cookies[key].first

クッキーのを書き込むのは

expires = Time.now + 60*60*24*30
cookies = [ CGI::Cookie::new({"name" => key, "value" => value, 'expires' => expires}) ]
cgi.out("cookie" => cookies) do
html
end

スポンサード リンク

トラックバック

トラックバックURL
https://linux-life.net/tb/program/ruby/cgidoc/cgi/
Linux Life 〜 No linux, No life 〜
プログラミング > Ruby > CGI入門 > CGIライブラリ

AltStyle によって変換されたページ (->オリジナル) /