Ruby de CGI -- Rubyで作るインタラクティブWebサイト

Warning.

この書籍の内容は、もはや完全に古くなっています。

WebアプリケーションをRubyで制作する場合、CGIではなく、Rack もしくは Ruby on Rails を使うべきです。次のページを参照してください。

2004.07.02更新。

拙著『Ruby de CGI』のサポートページ。

概要

書名Ruby de CGI -- Rubyで作るインタラクティブWebサイト
著者堀川 久
判型B5変形・262ページ
発行所オーム社
ISBN4-274-06472-7
定価本体2,200円+消費税

Google ブックスにて、60ページほどを読むことができるようになりました。Ruby de CGI - Google Books

内容

本書は,Rubyを用いて、Web掲示板やメール送信フォームといったCGIプログラムを製作する方法を解説する入門書です。

構成は大きく分けて解説部と実践部に分かれます。加えて、セキュリティについて独立した章を設けています。

解説部では、HTMLでフォームを作成するためのタグ(要素)や、Rubyの基礎、CGIライブラリなどについて、初歩的なところから解説しています。

実践部では、次の題材を取り上げて、実際にプログラムを製作していきます。その流れや注意すべき点などについて解説を加え、技術的な面についても説明します。

メール送信フォーム
Webサイトを訪れた人が,その場でメールを送信できるようにします。
Web投票システム
いくつかの選択肢から一つの項目を選んで投票するシステムを制作します。
Web掲示板
PC版と携帯電話(J-PHONE、現Vodafone)版とを制作し,同じ掲示板を読み書きできるようにする。また,ユーザーIDとパスワードを知った人のみしか読み書きできないような掲示板を製作します。

これらのプログラムは、題材としてはありふれていますが,その部品−−フォーム,CGIライブラリ,ファイル操作,メール送信,セッション管理など−−は,どれも幅広く使えるものです。これらの部品を組み合わせれば,独自のCGIプログラムを製作するときも躓かないだろうと思います。

セッション管理の部分は,若干難しいところもあるかもしれませんが,それでも取り組む価値があるものです。

ところで、CGIプログラムは,Webサーバーで公開されると,不届者の攻撃を受けることがあります。第7章では,堅牢なCGIプログラムを書くための,セキュリティについても解説します。

想定する読者

自分でデザインしたCGIプログラムを設置し,公開したい人が対象となります。本書ではRubyについても解説しているので、Rubyに触れたことがない人でも,読みこなすことができると思います。

ただし,Rubyはおろか,まったくプログラミングをしたことがない場合には,もっと噛み砕いてプログラミング(あるいはプログラムが動く仕組み)について解説した本をあらかじめ読んでおいた方がいいと思います。たとえば次の本が,人気があるようです。

  • 矢沢久雄『プログラムはなぜ動くのか 知っておきたいプログラミングの基礎知識』日経BP社

読者の声

次のWebサイトに感想などがあります。いい声ばかりではありません。

capsctrldays(2003-08-13)

読後感想:Ruby de CGI

Log(2004-04-18)

目次

第1章 ようこそRubyとCGIの世界へ

  1. CGIとは?
  2. なぜRubyなの?
  3. プログラムを書く環境を用意する
  4. 小さなCGIプログラムを設置しよう
  5. まとめ

第2章 Rubyの基礎を固めよう

  1. プログラム
  2. コメント
  3. 識別子とキーワード
  4. すべてがオブジェクト
  5. 変数
  6. 基本的なデータ型
  7. 演算子
  8. パターンマッチング
  9. メソッドに渡すブロック
  10. 処理の流れを変える
  11. 変数再び:スコープ
  12. 例外
  13. まとめ

第3章 RubyとCGI

  1. HTMLフォームとCGIライブラリ
  2. いろいろなコントロール
  3. エラーが出たときは?
  4. 文字コード
  5. まとめ

第4章 Example 1 -- メール送信フォーム

  1. どんなものを作るか
  2. フォームを作成する
  3. 入力された内容を取り出す
  4. 内容がないときは?
  5. メールの形式に整形する
  6. 完成!
  7. まとめ

第5章 Example 2 -- Web投票システム

  1. Web投票システムの概要
  2. ファイル操作のいろいろ
  3. ファイル構成とデータの操作
  4. 質問フォームを作成する
  5. 投票を受け付ける
  6. 連続投票のチェック
  7. 投票結果を表示する
  8. まとめ

第6章 Example 3 -- Web掲示板

  1. Web掲示板の概要
  2. セッション管理
  3. ファイル構成とクラス
  4. 投稿データを扱う
  5. ユーザー認証
  6. セッションを確立する
  7. メッセージを表示する
  8. どのメッセージを表示するか
  9. セッションを越えるデータ
  10. 新しい投稿を登録する
  11. メッセージの削除
  12. ログオフ
  13. 完成!
  14. 携帯電話用のWeb掲示板
  15. cgisup.rbライブラリ
  16. まとめ

第7章 CGIのセキュリティ

  1. 何を守らないといけないの?
  2. さまざまな脅威
  3. CGIプログラムの脆弱性
  4. Rubyのセキュリティ・モデル
  5. まとめ

CGIの向こう

  1. データベース
  2. 埋め込みRuby
  3. JavaScript

付録1 テスト環境の構築

  1. Cygwinのインストール
  2. Rubyインタプリタのインストール
  3. wwwsrvのインストール

付録2 オブジェクト永続化ライブラリ

サンプルプログラム

サンプルプログラムの入手はこちらから:Ohmsha オーム社 Ruby de CGI

正誤表

著者名

オーム社の手違いにより,著者名に事実と異なるところがあります。(オーム社了解済み)

  1. RubyUnitなる団体は存在しない。RubyUnitメーリングリストというものはありました。
  2. 編者は存在しない。

xii

誤:オブジェクトの永続化ライブラリ
正:オブジェクト永続化ライブラリ

p.141

(2002.10.01追加)

誤:pipe.print e2j(line), "\n"
正:pipe.print NKF.nkf("-j -E -m0 -f70", line).chomp, "\n"

その他

Ruby 1.6とRuby 1.8では、CGIライブラリの仕様が変わっています。同じスクリプトを動かすための方法は、次のページをご覧ください。

Ruby 1.6と1.8の両方でCGIスクリプトを動かすには

p.249以降で簡易なWebサーバwwwsrvのインストール法を解説しています。wwwsrvがバージョンアップして、設定ファイルに非互換な変更が生じています。

wwwsrvのインストール