第8回 基礎プログラミング II レポート課題 氏名: 金田麻美 学籍番号: C1090466 語学クラス: 英語3 コース(系): 政策マネジメント 1-A CGIは、利用者に情報を文字で入力させるほかに、 複数の候補の中から1つあるいはいくつかを選択させる役割を持っているが、 その条件(質問)と候補(選択肢)の関係が、 Hashの key と value の関係と似ているように思う。 特にCGI変数の中の option は、Hash と非常に似ていると思う。 具体的には、プログラム ticket.rb の中の arv = cgi["arrive"] という定義と、ticket.html の中の という定義の結びつきは、Hash の Hash名 = Hash.new "key" => ["value","value", "value", "value"], } という構成と似た仕組みだと言えると思う。 1-B. .htaccessn の中で ディレクトリ内に作られた .rb で終わる名前のファイルは、 CGIスクリプトであると定義している。 *.html は、利用者に入力させるためのWEBページであり、 そこで入力されたデータを処理するのが .htaccessn で CGIスクリプトだと 定義された *.rb である。 入力結果を出力するように定義するのも *.rb で行う。 1-C. 必要な行は、
html文書中で、結果を出すプログラム(CGIスクリプトである)ファイルを 指定することで、html 文書とCGI変数の間で、受け渡しが可能になる。 1-D. 必要な行は、 require 'cgi' cgi名 = CGI.new("html4")、 print("Content-type: text/html; charset=EUC-jp\n\n") 説明すると、require 'cgi' でCGIを利用するということを宣言し、 cgi名 = CGI.new("html4") でhtml文書にCGIを使用することを定義し、 print("Content-type: text/html; charset=EUC-jp\n\n") で、 日本語コードの使用を宣言している。 これにより、html文書としてCGIを出力することができる。 ------------------------------------------------------------------------- 2-A.a 授業で作成した、到着駅のみを選択できるプログラム ticket.html と ticket.rb を改良し、出発駅と到着駅を自由に選択できるようにした。 利用したデータは山形県内を通る羽越本線の駅名で、 改良前のデータに付け加えた形になっている。 なお、WEBページの色やCSS、料金の計算は余力が無く、できなかった。 プログラムのURL http://roy/~c109046/rubycgi/ticket.html トップページからのリンクのソース 基礎プログラミングII で作成した「羽越本線(山形県内)オンライン発券機」のページへ
advertise2/index.htmlからのリンクのソース IIで作成した「羽越本線(山形県内)オンライン発券機」へ 2-A.b 〜プログラムファイル〜 #!/usr/koeki/bin/ruby require 'cgi' # CGIを使用する宣言 cgi = CGI.new("html4") # html文書にCGIを使用する定義付け print("Content-type: text/html; charset=EUC-jp\n\n") # 日本語コードを使用 lev = cgi["leave"] # levに name="leave" の option が入る arv = cgi["arrive"] # arvに name="arrive" の option が入る print("\n") print("\n") print("\tオンライン乗車券<title>\n") print("</head>\n") print("<body>\n") print("<h1>羽越本線(山形県内)</h1>\n") print("<h2>%s -- %s<h2>\n", lev, arv) # それぞれ選んだ出発駅と到着駅が # 代入される。 print("</body>\n") print("</html>\n") *htmlファイル <html> <head> <title>オンライン券売機
# 結果を出すプログラム # ticket.rb を指定。

# submit で選択したoption をプログラムに送信。 # reset は選択したoption をリセット。

2-A.c htmlファイルで大きく変更した点は2つある。 1つは出発駅も選択させるために