第8回 CGIことはじめ レポート課題(再提出) 筆記問題とプログラム問題で作成したプログラム (report.rb と order_input_c111135.rb)のプログラム内に説明文をつけて いなかったので、説明文を付け加えた。 氏名: 村上茉奈美 学籍番号: C1111352 語学クラス: 英語3 コース: 社会福祉 1. A. 以下に、CGI変数とHashの似ている点を挙げる。 1. 新しく変数を作る際の表記 Hash では新しく作る際に、 (例: shop = Hash.new) とプログラムに書いて 「新しく shop というハッシュを作る」ことを宣言する。 CGI でも新しく作る際には、 (例: cgi = CGI.new) とプログラムに書いて 「新しく cgi という CGI用のハッシュを作る」ことを宣言する。 この2つに共通しているのは、 ◯◯ = …….new で新しくハッシュを定義しているという点である。 (CGI に関しては、「CGI用のハッシュ」という意味。) 2. 定義した後に代入される値の入り方 Hash では定義後に (例: shop["文字列 か 数字"] = 文字列 か 数字 ( = の後に入るものが文字列だった場合には 前後に " " がつく。)) と書くと 入力された文字列に基づいて 「 = の後の文字列もしくは数字」を表示す る仕組みになっている。 CGI では定義後に 一旦、(例: a = cgi["b"]) と書いて 「入力された文字列に基づいて、それに対応する option(CGIで選択肢を選ぶ 部分)を a に代入する」ことを示す。 この cgi = ["文字列"] の文字列部分には、option によって選ばれた ものが入る。 CGI も表記の仕方を変えると cgi["文字列"] = "文字列" とできるであろう。 その理由は、option の部分を a に代入させて a を表示することも、 option の部分を key にして value( = の後の文字列)を表示すること も、どちらも同じ意味を持つからである。 入力された文字列に基づいて、対応する値(もしくは文字列)を表示する 点が CGI変数と Hash の似ている点だと考える。 A の参考文献 ・ http://roy/~madoka/2012/r2/02/r2_02_03_theme_02_hash_input.html 2012年度 基礎プログラミングII 第2回 (なになにといえばこれこれ) 「入力したデータを取り出そう」 ・ http://roy/~madoka/2012/r2/08/r2_08_07_theme_07_actionprogram.html 2012年度 基礎プログラミングII 第8回 (CGI ことはじめ) 「CGIスクリプトの解説」 ・ http://roy/~madoka/2012/r2/08/r2_08_09_theme_09_declare.html 2012年度 基礎プログラミングII 第8回 (CGI ことはじめ) 「Ruby で CGI を作る宣言」 ・ http://roy/~madoka/2012/r2/08/r2_08_08_theme_08_ruby.html 2012年度 基礎プログラミングII 第8回 (CGI ことはじめ) 「動作プログラム作成」 上記4つともに、作者: 西村まどか B. .htaccess というファイルは 「CGI を使用することを宣言するもの」である。 .htaccess に AddHandler cgi-script .rb Options +ExecCGI と書くことによって、 「そのディレクトリの中に作成する、ファイル名の末尾に「.rb」がつくファ イルはCGIスクリプトである」と認識される。 *.html は「利用者にデータを入力してもらうためのページ」である。 *.rb は「入力されたデータを受け取り、その後処理をするプログラム」で ある。 B の参考文献 下記に示す2つの文献は、共に 2012年度 基礎プログラミングII 第8回 (CGI ことはじめ) 作者: 西村まどか である。 ※URLの下の「 」の部分は、ページのタイトル※ ・ http://roy/~madoka/2012/r2/08/r2_08_03_theme_03_makecgi.html 「CGIの作り方」 ・ http://roy/~madoka/2012/r2/08/r2_08_04_theme_04_declare.html 「CGIを使用することを宣言しよう」 以降、 C と D の問題については、 ・ report.html ・ report.rb を作成して、それぞれ解説する。 C. C の問題を解説するためのHTML文書(report.html)