cgi_req.rb を少し変更して、感想をファイルにしまうことにしよう。 書き込むのは作者ではなく、ユーザなので、ユーザがアクセスし、 書き込みできる directory を作る。
% cd ~/public_html/rubycgi
% mkdir mydb
% chmod o+w mydb
% cd mydb
% touch comment.txt
% chmod o+w comment.txt
cgi_req.html, cgi_req.rb から cgi_rec.html と cgi_rec.rb を作り、 mydb の下に移動しておく。(request から record へ)。 CGI 入力を促すプログラム (このテキストの例では書き込み許可を出さないので、 各自指示にしたがって作成する)。 入力を促すプログラムを cgi_rec.html とし、 cgi_rec.rb を動かすように指示しておく。 動かすプログラム cgi_rec.rb では comment.txt に書き込むようにしておく。 これら 3 つのファイルを全てmydb 以下に置くと簡易である。 入っているデータの例
comment.txt はユーザが書き込む。 chmod o+w で、他者がアクセスすることがようになる。
ファイルの書き込みができるようにしたバージョン cgi_rec.rb
このプログラムでは氏名や感想が未入力でも表示されてしまうのが欠点である。 アンケートなどで記録を取るとき、 未入力データは処理をしないような仕組みが必要であるかもしれない。
未入力欄があっても 動いてしまわないよう処理するにはどうしたらよいだろうか。