第 8 回 CGI ことはじめ レポート課題 堀 拓朗 c1111317 英語3 地域共創 [1]筆記問題 A.CGI変数とHashが似ている点は、複数の選択肢があるうちから 選択したいものを取りだせるということだと思う。 CGIは選んだ項目が何かの項目と結びつく。項目は hash でいえば key のよ うなものであり、選択肢は value のようなものであると考えた。 B..htaccess で .rb と付いたプログラムを CGI として扱う。 .html は選択肢を表示し、その結果を .rb で表示するようになっている。 C.授業で作成した ticket.html 参照 乗車券販売機
# 使用者に入力をさせるところを タグでまとめる # CGI変数の value の値を「.rbファイル」に送る # CGI変数の value の値を.rbファイル」でリセットする
D.授業で作成した ticket.rb 参照 #!/usr/bin/env ruby #coding: euc-jp require 'cgi' # CGI 変数を使用することを明記 cgi = CGI.new(:accept_charset => "EUC-JP") # 使用する Hash を作成し、html文書で使う # EUC-JP で受け取る print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードにする arv = cgi["arrival"] # arrive を 「.rbファイル」において使用できるように変数 arv に代入させる。 print("\n") print("\n") print("オンライン乗車券\n") print("\n") print("\n") printf("

酒田--%s

\n", arv) # 文の中に HTMLタグを入力して、HTML文書として出力する print("\n") print("\n") [2]プログラム問題 A. ●考えた設定 前期に作成した web_data_ユーザ ID.dat の 客の詳細情報を表示できるようにしたCGI ●作成したプログラム order_input_c111131 #!/usr/koeki/bin/ruby #coding: euc-jp require 'cgi' # CGI 変数を使用することを明記 cgi = CGI.new(:accept_charset => "EUC-JP") # 使用する Hash を作成し、html文書で使う # EUC-JP で受け取る print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードにする arv = cgi["arrival"] # arrive を 「.rbファイル」において使用できるように変数 arv に代入させる。 info = Hash.new # Hash配列 info # info[名前] = [出身大学, 受賞年, 受賞部門, 受賞理由等] info["阿良々木暦"] = ["男", "余目", "0234-43-3501", "6月18日"] info["戦場ヶ原ひたぎ"] = ["女", "酒田", "0234-56-7823", "6月24日"] info["羽川翼"] = ["女", "鶴岡", "0235-33-8474", "6月16日"] info["忍野メメ"] = ["男", "新庄", "0233-26-2381", "6月12日"] info["忍野忍"] = ["女", "上山", "0245-45-4872", "6月25日"] info["八九寺真宵"] = ["女", "遊佐", "7486-32-1538", "6月11日"] info["神原駿河"] = ["女", "鶴岡", "8328-37-1929", "6月14日"] info["千石撫子"] = ["女", "酒田", "7132-63-2187", "6月23日"] info["阿良々木火憐"] = ["女", "余目", "1973-27-8763", "6月13日"] info["阿良々木月火"] = ["女", "余目", "2311-12-3768", "6月10日"] print("\n") print("\n") print("お客様情報\n") print("\n") print("\n") print("

-----お客様情報-----

\n") printf("

名前: %s

\n", arv) # 文の中に HTMLタグを入力して、HTML文書として出力する printf("

性別: %s\n", info[arv][0]) printf("

出身: %s\n", info[arv][1]) printf("

電話番号: %s\n", info[arv][2]) printf("

返却日: %s

\n\n", info[arv][3]) print("

レンタルビデオ TETSUYA 担当:堀

\n") print("\n") print("\n") -------order_input_ユーザ ID.html も貼っておく------- レンタルビデオ TETSUYA

レンタルビデオ TETSUYA

お客様情報

お名前を選択してください

注意事項

このプログラムは 東北公益文科大学 堀 拓朗 が著作権を保有しています。

このプログラムの入手、実行、改変、再配布いずれの行為も自由ですが、

それらを取り扱うことで生じた結果に対して作者は一切責任を負いません。

ご了承のほどお願いいたします。

ご意見、ご感想などは c111131@g.koeki-u.ac.jp までご連絡下さい。

ホームページへ

●実行結果 #ソース お客様情報

-----お客様情報-----

名前: 千石撫子

性別: 女

出身: 酒田

電話番号: 7132-63-2187

返却日: 6月23日

レンタルビデオ TETSUYA 担当:堀

●もとのプログラムからの変更点 今回の授業で作成した cgi_ticket.rb を参考にした。 Hash をいれデータが表示されるようにした。 css も入れ見やすいページになるようにした。 ●考察 実行結果が正しく表示されているので このプログラムは正常に動作しているといえる。 [3]感想 普段インターネットをしているとよく目にする CGI だが いざ自分で作成するとなると大変な作業だった。 普段のプログラムならば実行できたことができないという 状態になってしまった。 当初の目標としては .dat からデータを open で 持ってきて表示させようとしたのだがどうしてもできず 断念してしまった。そのかわりに、プログラムの中に Hash を入れ表示させることには成功できた。 悔しいが CGI の仕組みをまだ完璧に理解できていないようなので これからの復習、講義で学びチャレンジしたいと思う。 [4] ●参考文献 ・基礎プログラミング 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 ことはじめ) 「試作品のエラーを探せ」 http://roy/~madoka/2012/r2/08/r2_08_14_theme_12_tryanderror.html 西村まどか ・基礎プログラミング II 第 8 回 (CGI ことはじめ) 「動作プログラム作成」 http://roy/~madoka/2012/r2/08/r2_08_08_theme_08_ruby.html 西村まどか ●共同学習者 加藤 岳大 佐藤 航輝