第8回 基礎プログラミング II レポート課題 氏名:遠藤達也 学籍番号:c109027 語学クラス:中国語 コース(系):政策 1、筆記問題 A、 Hashにはkeyとvalueという対があるのに対して、 CGIではHTMLの入力されて引き出される値が設定しておいた変数に代入 される。 それがkeyとなって、valueとして引き出せるというところが似ている。 B、 「.htaccess」を作成すると、保存したディレクトリーに作成する 「*.rb」というファイルは、CGIスクリプトとして認識される。 その結果をHTML文書で書きこむプログラムが「*.rb」であり、 HTML文書を実行する担当はRubyである。 C、
メゾットPOSTは項目の数、長い文章を入力する際に使う。 **.rbは、HPでの入力データを引き渡すところである。 D、 require 'cgi' cgi = CGI.new("html4") print "Content-type: text/html; charset=EUC-JP\n\n" arv = cgi["arrive"] 「require 'cgi'」でCGIを使うことを指す。 「cgi = CGI.new("html4")」で、HTMLの入力フォームから引き渡された 値が、変数cに代入される。 cgiにハッシュの値として代入されるので、各々の入力値はHTMLが引き 渡すときに設定したarriveをkeyとして、valueという形でHTML文書として 取りだす。 2、プログラム問題 A、考えた設定。 ticket.rbを改良して酒田から選択した駅までの走行距離を表示するプ ログラム。 作成したプログラム #!/usr/bin/env ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-JP\n\n") arv = cgi["arrive"] print("\n") print("\n") print("オンライン券売機\n") print("\n") print("\n") print("

庄内急行 Shonai Express<\h1>\n") printf("

庄内急行特急券 酒田 -- %s 間

\n", arv) if/東酒田/=~arv print("

酒田からの走行距離は 3.3 [km]<\p>\n") elsif/砂越/=~arv print("

酒田からの走行距離は 6.5 [km]<\p>\n") elsif/北余目/=~arv print("

酒田からの走行距離は 9.5 [km]<\p>\n") elsif/余目/=~arv print("

酒田からの走行距離は 12.2 [km]<\p>\n") elsif/西袋/=~arv print("

酒田からの走行距離は 15.8 [km]<\p>\n") elsif/藤島/=~arv print("

酒田からの走行距離は 20.9 [km]<\p>\n") elsif/鶴岡/=~arv print("

酒田からの走行距離は 27.5 [km]<\p>\n") end print("\n") print("\n") 実行結果 pan{c109027}% ssh roy [~] Password: Last login: Tue Nov 16 14:08:44 2010 from pan.e.koeki-u.ac.jp NetBSD 5.1_RC1 (FireStorm) #1049: Tue Apr 27 09:41:34 JST 2010 roy{c109027}% cd public_html/rubycgi [~] roy{c109027}% ls [~/public_html/rubycgi] ticket.html ticket.rb* roy{c109027}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive"東酒田" Content-type: text/html; charset=EUC-JP オンライン券売機

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

roy{c109027}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive"砂越" Content-type: text/html; charset=EUC-JP オンライン券売機

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

roy{c109027}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive"北余目" Content-type: text/html; charset=EUC-JP オンライン券売機

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

roy{c109027}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive"余目" Content-type: text/html; charset=EUC-JP オンライン券売機

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

roy{c109027}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive"西袋" Content-type: text/html; charset=EUC-JP オンライン券売機

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

roy{c109027}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive"藤島" Content-type: text/html; charset=EUC-JP オンライン券売機

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

roy{c109027}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive"鶴岡" Content-type: text/html; charset=EUC-JP オンライン券売機

庄内急行 Shonai Express

庄内急行特急券 酒田 -- 間

考察 きちんと実行されているのでプログラムは正しい。 B、作成し添付しました。 張り付けたホームページのアドレス http://roy/~c109027/ PNG形式にして添付したのですが、ホームページ上にはgimpで作成したファイル の名前が出るだけで、画像があらわれませんでした。 C、作成はしたのですが、B同様、もとのリンク先がまだ完成していないので、完 成したら張り付けたいとおもいます。 3、感想 今回のレポートでは、今までの知識や身につけた技術をフルで使わなけ ればならないレポートだったのでとても大変でした。 また前回のレポート作成がまだ途中なので、今週中に完成させて今回の 作品も完成させたいとおもいます。 それと、最近では評価Dのレポートが多いですが、自分としては少しづ つ1人でもできることが増えてきたので少しうれしいです。 参考文献 CGI 専用作業 directory http://roy/~madoka/2010/r2/08/08_02_theme_02_mkdir.html 利用者にデータを入力させる部品 http://roy/~madoka/2010/r2/08/08_05_theme_04_form.html 動作プログラム作成 http://roy/~madoka/2010/r2/08/08_08_theme_07_ruby.html # Office Suites / OpenOffice.org(StarSuite) Writer http://roy/~madoka/2009/r1/10/10-03-starsuite.html 共同学修者 なし