第 8 回 CGI ことはじめ レポート課題 氏名: 池田 紘平 学籍番号: c1110097 語学クラス: 英語 3 コース: 社会福祉コース 1.A Hashでは、 変数["key"] = ["value"] という感じだったが、CGIの場合は、 となっている。Hash における key の役割をするのは name、value の役割をす るのは option ということになる。 1.B .htaccess 内に cgi-script .rb と入力したので、このディレクトリに保存する 〜.rb というファイルをCGIスクリプトであるということを認める。 〜.html は、普段ホームページを作る要領で 等をつけていく。
で、使うプログラムが ticket.rb であるということを指定する。このファイルは先程CGIを認めてあるので、動く。 1.C # ok ボタンが押されたらデータを ticket.rb に渡す。 name と arrival を同じ値が入っているとする。 name = arrival = 東酒田 name = arrival = 鶴岡 データとしてすべて渡すが、web 上で選択されたもののみをプログラムが判断し て出力する。 1.D cgi = CGI.new(:accept_charset => "EUC-JP") # EUC-JP でデータを受け取り print("Content-type: text/html; charest=EUC-JP\n\n") # 書き出すときも EUC-JP と設定する arv = cgi["arrival"] # arv にcgi の中身を代入 # これより下から HTML 文書として書き出す print("\n") # html の開始 print("\n") # head の開始 print("オンライン乗車券\n") # 最初に表示するタイトル print("\n") # head の終了 print("\n") # body の開始 printf("

酒田 -- %s

\n",arv) # 酒田からどこに行くかを表示 print("\n") # body の終了 print("\n") # html の終了 上記のように、最初に EUC-JP で受け取りm、同じ形式で書き出すことを宣言し ておく。あとは、前期で学んだ html 形式で書き出す方法を使う。 2.A < 設定 > 公益店となっているので、年齢は 19 歳から 24 歳までとなっている。レンタル したいものを選択して、借りた日の月日を入れ、「Go!」 のボタンを押すと表示 されるプログラム < プログラム order_input_c111009.rb > #!/usr/bin/env ruby # coding:euc-jp require 'cgi' # CGI を使うことを最初に宣言しておく cgi = CGI.new(:accept_charset => "EUC-JP") # EUC-JP で受け取り print("Content-type: text/html; charest=EUC-JP\n\n") # EUC-JP で書き出すようにする。 arv = cgi["age"] # 変数 arv に年齢(age) を代入 arv2 = cgi["kariru"] # 変数 arv2 にレンタル品(kariru) を代入 arv3 = cgi["month"] # 変数 arv3 に月(month) を代入 arv4 = cgi["day"] # 変数 arv4 に日(day) を代入 print("\n") # html の開始 print("\n") # head の開始 print("TSUTAYA 公益店\n") # タイトルを決める print("\n") # head の終了 print("\n") # body の開始 print("

TSUTAYA 公益店

") # 文章の最初に表示 printf("

年齢: %d

\n",arv) # 年齢を表示 printf("

レンタル品: %s

\n",arv2) # レンタル品を表示 printf("

借りた日: %d 月 %d 日

\n",arv3.to_i,arv4.to_i) # 借りた月日を整数で表示 print("\n") # body の終了 print("\n") # html の終了 < ホームページ order_input_c111009.html > # html の開始 # head の開始 TSUTAYA 公益店 # タイトル表示(ツールバー) # 背景色の設定終了 # head の終了 # body の開始 # action の中には起動するプログラムを入れておく

TSUTAYA 公益店
# 画面上に最初に表示する文 # age のドロップダウンメニューの終了 # kariru のドロップダウンメニューの終了 # month のドロップダウンメニューの終了

# day のドロップダウンメニューの終了

# 表示する時のボタンの設定

# リセットするときのボタンの設定
# form の終了 # body の終了 # htnl の終了 < 実行結果 > TSUTAYA 公益店

TSUTAYA 公益店

年齢: 20

レンタル品: 劇場版 SPEC〜天〜 警視庁公安部公安第五課 未詳事件特別対策 係事件簿

借りた日: 11 月 15 日

--------------------------------------------------------------------------- TSUTAYA 公益店

TSUTAYA 公益店

年齢: 19

レンタル品: メン・イン・ブラック

借りた日: 6 月 8 日

< 説明 > 最初の html の画面では、講義の時に使ったプログラムに背景色をつけるなど、 少しだけ工夫を加えた。入力されたものをそのまま表示するプログラムになって いる。 < 考察 > 名前を入力してもらうように設定したらもっとよくなるのではないかと考えた。 そこで、先ほどのプログラムに名前を入力する部分をとりつけた。 < 改良プログラム order_input_c111009.rb > 改良した部分のみ # を付ける。 #!/usr/bin/env ruby # coding:euc-jp require 'cgi' cgi = CGI.new(:accept_charset => "EUC-JP") print("Content-type: text/html; charest=EUC-JP\n\n") arv = cgi["your"] # 新しく名前を入れる arv を用意 arv1 = cgi["age"] arv2 = cgi["kariru"] arv3 = cgi["month"] arv4 = cgi["day"] print("\n") print("\n") print("TSUTAYA 公益店\n") print("\n") print("\n") print("

TSUTAYA 公益店

\n") printf("

お名前: %s

\n",arv) # arv に入っている名前を表示 printf("

年齢: %d

\n",arv1.to_i) printf("

レンタル品: %s

\n",arv2) printf("

借りた日: %d 月 %d 日

\n",arv3.to_i,arv4.to_i) print("\n") print("\n") < 改良ホームページ order_input_c111009.html > 改良した部分のみ # を付ける TSUTAYA 公益店

TSUTAYA 公益店


お名前は # 名前を入力することを告げる

# text タイプであることを宣言 # text タイプの終了

< 実行結果 > TSUTAYA 公益店

TSUTAYA 公益店

お名前: 公益太郎 様

年齢: 21

レンタル品: スノーホワイト

借りた日: 7 月 16 日

TSUTAYA 公益店

TSUTAYA 公益店

お名前: 飯森二朗 様

年齢: 22

レンタル品: キラー・エリート

借りた日: 12 月 10 日

上記のように入力された名前を表示することができた。 < 感想 > 今回から、今までのプログラミングとは少し違った、CGI というものを使った。 最初は使い方に戸惑ったが、なれてくると楽しくなってきた。Web 上で選択した ものが OK ボタンを押すだけで次のページに表示されるということにとても驚い た。 < 参考文献 > ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「利用者にデータを入力させる部品」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_05_theme_05_form.html ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「基本の CGI ホームページの作りかた」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_06_theme_06_firstcgi.html ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「CGI スクリプトの解説」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_07_theme_07_actionprogram.html ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「動作プログラム作成」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_08_theme_08_ruby.html ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「Ruby で CGI を作る宣言」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_09_theme_09_declare.html ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「print() 文と HTML 文書のなかみ」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_11_theme_10_printhtml.html ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「自動券売機」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_13_theme_11_ticket.html ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「試作品のエラーを探せ」 西村まどか http://roy/~madoka/2012/r2/08/r2_08_14_theme_12_tryanderror.html ・基礎プログラミング II 第 9 回 (CGI ことえらび) 「短い記入欄の作り方」 西村まどか http://roy/~madoka/2012/r2/09/r2_09_06_appendix_03_textfield.html 追伸:プログラム、ホームページ、データファイルを添付します