第 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
これを *.html に入力することで
までの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