第 8 回 CGI ことはじめ レポート課題
氏名:高田美咲
学籍番号:C1110909
語学クラス:英語1
コース:政策マネジメント
1.
A
CGIで1つの質問に3つの選択肢があったとしてその中から1つ選択して結果を返す。
Hashでは配列にある情報を結果として返す。
どちらも複数の情報がある中から選択して結果を表示できる点が似ていると思う。
B
.htaccessで.rbファイルでCGIを作成する宣言をする。
*.html で利用者が入力する文書を作成する。
*.rb で結果出力用のファイルを作成する。
この3つは .htaccess で *.rb でCGI作成宣言をしたから *.html で入力された
内容を *.rb に取りこむことができて *.rbファイルの結果を出力させられると
いう関係でつながっている。
C
までのCGI変数を *.rb に渡すことが
できる。
D
rubycgi/ticket.rbを例にあげて説明する。
require 'cgi' でCGIを使う宣言をする。
cgi = CGI.new(:accept_charset => "EUC-JP") でEUC-JPで受け取る。
print("Content-type: text/html; charset=EUC-JP\n\n") でEUC-JPで書き出す。
arv = cgi["arrival"]
ここでHashを用いて、"arrival"の部分はhtmlファイルで設定したnameをいれる。
その後、print("\n")のようにprint文をHTML形式で作成するとHTML文書に
なる。
2.
< 設定 >
利用者が選択した内容を結果として表示する。
< HTML > order_input_c111090.html
注文内容の入力
< プログラム > order_input_c111090.rb
#!/usr/koeki/bin/ruby
#coding: euc-jp
require 'cgi' #CGIを使う宣言
cgi = CGI.new(:accept_charset => "EUC-JP") #変数をEUC-JPで受け取る
print("Content-type: text/html; charset=EUC-JP\n\n") #EUC-JPで書き出す
name = cgi["name"]
kana = cgi["kana"]
syurui = cgi["syurui"]
sport = cgi["sport"]
syohin = cgi["syohin"]
print("\n")
print("\n")
print("\t注文内容の確認\n")
print("")
print("\n")
print("\n")
print("
")
print("
注文内容の確認
\n")
print("このたびはご利用頂きありがとうございます。
\n")
print("注文内容の確認をお願いします。
\n\n")
printf(" %s (%s) 様
",name,kana)
printf(" \t %s 注文
\n",syurui)
printf(" \t %s \t %s
\n",sport,syohin)
print("在庫が確認でき次第、発送させて頂きます。
\n")
print("またのご利用をお待ちしております。
\n")
print("
")
print("\n")
print("\n")
< もとにしたプログラム、変更点 >
「ticket.rb」「ticket.html」をもとにして必要な変数、文章を付け加えた。
< ホームページでの実行結果 >
注文内容の確認
このたびはご利用頂きありがとうございます。
注文内容の確認をお願いします。
◯◯高校 ☆☆部 (◯◯コウコウ ☆☆ブ) 様
団体 注文
サッカー ウェア
在庫が確認でき次第、発送させて頂きます。
またのご利用をお待ちしております。
< URL >
* 入力ページ *
http://roy/~c111090/rubycgi/order_input_c111090.html
* 結果ページ *
http://roy/~c111090/rubycgi/order_input_c111090.rb
< 考察 >
HTMLで始めは で選択肢を作成したが、
結果ページで選択した単語(サッカー)が表示されず以下のように表示された。
------------------------------------------
注文内容の確認
このたびはご利用頂きありがとうございます。
注文内容の確認をお願いします。
◯◯高校 ☆☆部 (◯◯コウコウ ☆☆ブ) 様
団体 注文
on ウェア
在庫が確認でき次第、発送させて頂きます。
またのご利用をお待ちしております。
-----------------------------------------
このため、 に変更した。
その後、実行したところ正確に表示され正常に機能した。
3. 感想
HTMLを作成していて選択した単語が表示されなかったことについて、
のように単語自体を選択する機能と
のように選択肢にチェックをいれる機能との違い
によって起こったものではないかと思った。
それと先生のページソースをみてnameとvalueを1つ1つ設定すればよかったので
はと思った。
4. 参考資料
西村まどか 基礎プログラミングII 第8回 CGI ことはじめ
「利用者にデータを入力させる部品」
http://roy/~madoka/2012/r2/08/r2_08_05_theme_05_form.html
「基本の CGI ホームページの作りかた」
http://roy/~madoka/2012/r2/08/r2_08_06_theme_06_firstcgi.html
「動作プログラム作成」
http://roy/~madoka/2012/r2/08/r2_08_08_theme_08_ruby.html