#!/usr/bin/env ruby # coding: utf-8 myname="r2-8-2.rb" require "cgi" c = CGI.new(:accept_charset => "UTF-8") require "pstore" x = PStore.new("data/word.db") # 別ディレクトリにする print "Content-type: text/html; charset=UTF-8\n\n" print "<!DOCTYPE html> <html> <head><title>Word</title></head> <body>" # 値入力フォームもこのCGIで出力する。 # formのactionをこのCGIプログラムに指定している。 # (mynameはこのスクリプト名) printf("<form method=\"POST\" action=\"./%s\">\n", myname) print ' <p> おなまえ: <input name="name" maxlength="40"><br> ひとこと: <input name="word" maxlength="80"><br> <input type="submit" value="GO"> <input type="reset" value="reset"> </p></form>' x.transaction do x["word"] ||= Hash.new word = x["word"] if c["name"] > "" && c["word"] > "" name = c["name"] word[name] = c["word"] end print "<pre>\n" for p, w in word # フォーム入力値を出力するときは必ず CGI.escapeHTML() する person = CGI.escapeHTML(p) wrd = CGI.escapeHTML(w) printf("%sさんのひとこと「%s」\n", person, wrd) end print "</pre>" end puts "</body></html>"