第8回のレポート課題です。 ミスを見つけたので再送します。 氏名: 時田佳穂 学籍番号: C1101603 語学クラス: 中国語3 コース(系): 環境サイエンス 1- A.CGI変数もHashも、新しく作るときは 変数名 = CGI or Hash .new とするところ。 B..htaccessファイルで設定した内容は、そのファイルがあるディレクトリと それ以下のディレクトリに効果があり、そこに入っているファイルすべてに 影響をおよぼすため、*.htmlや *.rbすべてに.htaccessの内容が反映される。 *.htmlと*.rbは、htmlファイルの方でrbファイルを呼び出すときrbファイル の内容が反映される。 C.
内容
form要素の主要な属性が method と actionで、 methodはデータの送信方法を指定する属性、 actionはデータを受け取るプログラムを指定する属性である。 methodでのデータの送信方法には post と get の2種類があるが、 一般的なフォームではpostを用いる。 actionの値には、データを受け取るプログラムを指定する。
内では、入力コントロールや説明文を記述する。 この範囲内で、受け手によって入力されるデータがactionで 指定したプログラムに送信される。 D.require 'cgi' 変数 = CGI.new b = cgi['a変数'] requireはプログラムに必要な外部モジュールを現在のプログラムに取り込む 記法で、ここでは、cgi.rbの機能をロードしている。 CGI.newでは、CGIクラスにフォームのデータを作るように命令している。 このデータには「フォームの部品のname属性」と「その部品のデータ(value)」 の組が含まれている。 values = cgi['field_name']では、フォームに記入されたa変数を 取り出し、変数bに代入している。 2- A. ●オンライン発券システムURL http;//roy/~c110160/rubycgi/ticket.html ●読み込まれるrubyファイル ◯ticket.rbの内容、説明 #!/usr/bin/env ruby $KCODE = 'e' require 'cgi' #CGIの機能をロードする cgi = CGI.new('html4') #html4(Strict)でHTMLを生成する print"Content-type: text/html; charset=EUC-jp\n\n" #HTMLとして出力したいので、Content-typeは必ずtext/htmlにする #文字コードは日本語(EUC-jp) lai = cgi["depart"] # CGIでもらってきた出発地を代入 qu = cgi["arrive"] # CGIでもらってきた到着地を代入 #p lai #p qu na = 0 nb = 0 #上り、下り、金額を判断するために出発地、到着地それぞれに番号をつける if lai == "赤湯" na = 1 elsif lai == "南陽市役所" na = 2 elsif lai == "宮内" na = 3 elsif lai == "おりはた" na = 4 elsif lai == "梨郷" na = 5 elsif lai == "西大塚" na = 6 elsif lai == "今泉" na = 7 elsif lai == "時庭" na = 8 elsif lai == "南長井" na = 9 elsif lai == "長井" na = 10 elsif lai == "あやめ公園" na = 11 elsif lai == "羽前成田" na = 12 elsif lai == "白兎" na = 13 elsif lai == "蚕桑" na = 14 elsif lai == "鮎貝" na = 15 elsif lai == "四季の郷" na = 16 elsif lai == "荒砥" na = 17 end #p na if qu == "赤湯" nb = 1 elsif qu == "南陽市役所" nb = 2 elsif qu == "宮内" nb = 3 elsif qu == "おりはた" nb = 4 elsif qu == "梨郷" nb = 5 elsif qu == "西大塚" nb = 6 elsif qu == "今泉" nb = 7 elsif qu == "時庭" nb = 8 elsif qu == "南長井" nb = 9 elsif qu == "長井" nb = 10 elsif qu == "あやめ公園" nb = 11 elsif qu == "羽前成田" nb = 12 elsif qu == "白兎" nb = 13 elsif qu == "蚕桑" nb = 14 elsif qu == "鮎貝" nb = 15 elsif qu == "四季の郷" nb = 16 elsif qu == "荒砥" nb = 17 end #p nb n = na - nb #出発地と到着地の番号の差(=通過(到着)する駅の数) #p n if n > 0 #赤湯方面へ向かうとわかるので、下り nk = "下り" money = 180 + (n * 50) #初乗り180円、1駅ごとに50円プラス elsif n < 0 #荒砥方面へ向かうとわかるので、上り nk = "上り" money = 180 + (n.abs * 50) #このときnは負数なので、.absで絶対値をとる end #p nk #p money print"\n" #ここからhtml形式で結果を出力する print"\n" print"発券結果\n" print"\n" # ticket.cssを読み込む #このとき、print"" 以外の " は混同を避けるために \" としなければならない。 print"\n" print"\n" print"\n" #テーブル = webチケット print"\n" printf("\n",nk) printf("\n",lai,qu) printf("\n",money) print"\n" #それぞれの列にclass名をつけて、cssでそれぞれ別々の設定をする print"\n" print"
ふらわーながい線 %s列車
%s -- %s 間
%d 円
当日限り有効 途中下車無効
\n" print"\n" print"\n" ◯考察 地元の電車を使いました。 1駅ごとに50円ということで、実際の運賃よりもかなり安くなりましたが、 実際の料金は脈絡がなくてパターンにはめるのが難しかったので こうしました。 ●読み込まれるcssファイル ◯ticket.cssの内容、説明 body{ #内の設定 margin-left: 8em; #左marginを8em margin-top: 2em; #上marginを2em } table{ #tableタグ内の設定 background-color: #c485dd; #背景色 } th{ #htタグ内の設定 background-color: #ff87eb; #背景色 height: 1em; #高さ1em } tr.title{ #titleクラスのtrタグ内の設定 font-size: 2em; #フォントサイズ2em } tr.station{ #stationクラスのtrタグ内の設定 font-size: 2.5em; #フォントサイズ2.5em } tr.money{ #moneyクラスのtrタグ内の設定 font-size: 3em; #フォントサイズ3em text-align: right; #右揃え } ※実際のcssファイルにはコメント書込みしていません。 ◯考察 チケットっぽくしてみました。 また、長井を意識してあやめっぽい色を使いました。 太字にしようとしてfont-weight: bold;としましたが 反応がなかったので削除しました。 B.ロゴの掲載ページURL http://roy/~c110160/advertise2/index.html C.pdfファイルへのリンク http://roy/~c110160/advertise2/r2_c110160.pdf また、http://roy/~c110160/advertise2/index.html 内にリンクを貼りました。 3. CGIを使うことで、HTMLで更に色々できるようになりました。 またまだやれることがありそうで楽しみです。 アンケート集計結果の表示などもできるようになりたいと思います。 4. 参考URL: ◯ごく簡単なHTMLの説明-基本的なフォーム (神崎正英) http://www.kanzaki.com/docs/html/htminfo31.html ◯RubyビギナーのためのCGI入門 第2回 (るびま編集部) http://jp.rubyist.net/magazine/?0012-CGIProgrammingForRubyBeginners-3 ◯Programming Fundamentals II - CGI (広瀬雄二) http://roy/~yuuji/2011/pf2/cgi/ ◯基礎プログラミングII 第10回 (神田直弥) http://roy/~naoya/cgi-bin/10.html ◯フラワー長井線時刻表 http://www.flower-liner.jp/content/jikoku/index.html 共同学習者: 赤石亜希子 片山知奈美 佐藤千香 長谷川成美 山本知加