第10回 基礎プログラミング II レポート課題
氏名: 金田麻美
学籍番号: C1090466
語学クラス: 英語3
コース(系): 政策マネジメント
1
Pstoreを使用すると、open-end文のように外部ファイルへのデータの記録、
外部ファイルからのデータの読み出しが可能になる。
しかし、open-end文がデータをただのテキスト(文字列)として処理するのに対し、
Pstore はデータとして貯蔵をする。また、空白文字を気にしなくてもよい。
実際に授業で作成した comment.db を見てみると、
{"
というふうに、コンピュータが自動的に何らかの処理をして、
記録しているのがわかる。
CGIを使用したプログラムでPstoreを使用するときの構成としては、
require 'pstore' で入力されたデータを貯める宣言をし、
変数 = PStore.new("データベース名.db") で、データを貯める
データベースを作成する。
そして入力されたデータは Hash の仕組みで記録される。
データを呼び出して出力するには、 変数.transaction do -end を使用する。
また、CGIを使用して、WEBページからの訪問者による入力をデータベースに
利用する際には、第三者からもファイルへの書き込みが可能となるように
しなければならない。
しかし改変されたくないファイルまで書き込み可能になってしまうと
トラブルが生じるため、データベース専用のディレクトリを作成し、
そのディレクトリだけ、chmod o+w で第三者も書き込み可能にすべきである。
参考文献
基礎プログラミング II 第10回 CGIことおぼえ
「CGI で使うことのできるデータベース」
http://roy/~madoka/2010/r2/10/10_01_theme_01_pstore.html
基礎プログラミング II 第10回 CGIことおぼえ 「プログラム部分について」
http://roy/~madoka/2010/r2/10/10_02_theme_02_program.html
作者はどちらも、西村まどか
----------------------------------------------------------------------------
2. オンライン授業アンケートに挑戦しました。
作品のURL
http://roy/~c109046/advertise2/rubycgi/r2_cgi_best.html
a.
公益大の授業アンケートを参考に、CGIを利用してオンラインで記入できる
授業アンケートプログラム r2_cgi_best.rbを作成した。
送信ボタンを押すと、送信した内容を確認できるようにした。
b.
●送信ページ r2_cgi_best.html
オンライン授業アンケート
授業アンケート
よりよい授業へと改善していくために、アンケートにご協力ください。
入力していただいた情報は、授業改善以外には利用いたしませんのでご安心ください。
このプログラムは東北公益文科大学2009年度生 金田麻美 が著作権を保有しています。
このプログラムの入手・実行・改変・再配布は、いずれも無料で自由に行なうことができます。
ただしこのプログラムを取り扱うことで生じたいかなる結果に対しても著作権者は責任を負いません。
このプログラムに対する、感想・助言・要望などがありましたら、以下のメールアドレスまでお寄せいただけると嬉しいです。
c109046@e.koeki-u.ac.jp
トップページに戻る
基礎プログラミングIIのページへ
© C1090466 金田麻美
●出力プログラム r2_cgi_best.rb
#!/usr/koeki/bin/ruby
require 'cgi' # CGIの使用を宣言
cgi = CGI.new("html4") # htmlでCGIを使用する
print("Content-type: text/html; charset=EUC-jp\n\n") # 日本語コードの使用を宣言
subject = cgi["subject"] # 各nameを変数に代入。以下のprintfで出力。
code = cgi["code"]
year = cgi["year"]
understand = cgi["understand"]
quantity = cgi["quantity"]
hearing = cgi["hearing"]
motivation = cgi["motivation"]
miss = cgi["miss"]
writing = cgi["writing"]
# チェックボックスはnameがそれぞれ違うので、一つ一つ変数を設ける。
speaking = cgi["speaking"]
resume = cgi["resume"]
book = cgi["book"]
other = cgi["other"]
reason = cgi["reason"]
interest = cgi["interest"]
free = cgi["free"]
print("\n")
print("\n")
print("送信完了\n")
print("\n")
print("\n")
print("以下の情報を送信しました。ご協力ありがとうございました。
")
print("
\n")
printf("科目名: %s
", subject)
printf("授業コード: %s
", code)
printf("学年: %s
", year)
print("
\n")
printf("Q1 授業内容は分かりやすかったか: %s
", understand)
printf("Q2 授業内容の分量はどうだったか: %s
", quantity)
printf("Q3 教員の話は聴きとりやすかったか: %s
", hearing)
printf("Q4 教員の話の熱意: %s
", motivation)
printf("Q5 あなたの欠席率: %s
", miss)
printf("Q6 理解に役立ったのは: %s %s %s %s %s
", writing, speaking, resume, book, other)
printf("%s
",reason)
printf("Q7 興味関心は増えたか: %s
", interest)
print("Q8 その他の意見・要望・感想:
")
printf("%s
", free)
print("\n")
print("\n")
c.
基にしたプログラムは特になく、講義ページの各CGIスクリプトの説明を
参考にしながら作成した。
変更した点としては、チェックボックスを使用する際に、
出力プログラムで選ばれた選択肢をそのまま表示させるために、
valueと選択肢を同一にした。
valueが日本語で設定可能である意義がわかった。
d.
roy{c109046}% ./r2_cgi_best.rb [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
subject="日本語B"
code="5555"
year="4年"
understand="分かりにくかった"
quantity="ちょうどいい"
hearing="まあまあ聴きとりやすかった"
motivation="とても感じた"
miss="4回以上"
book="参考書"
other="その他"
reason="VTR鑑賞"
interest="むしろ減った"
free="アニメの話に脱線しないでください。"
Content-type: text/html; charset=EUC-jp
送信完了
以下の情報を送信しました。ご協力ありがとうございました。
科目名: 日本語B
授業コード: 5555
学年: 4年
Q1 授業内容は分かりやすかったか: 分かりにくかった
Q2 授業内容の分量はどうだったか: ちょうどいい
Q3 教員の話は聴きとりやすかったか: まあまあ聴きとりやすかった
Q4 教員の話の熱意: とても感じた
Q5 あなたの欠席率: 4回以上
Q6 理解に役立ったのは: 参考書 その他
VTR鑑賞
Q7 興味関心は増えたか: むしろ減った
Q8 その他の意見・要望・感想:
アニメの話に脱線しないでください。
改行文字ではなく段落分けしていたのでごちゃごちゃと表示されたが、
すべて代入されている。よってこのプログラムは正しい。
e.
チェックボックスは nameがそれぞれ違うので、出力プログラムでは
if文を使ってnameにoptionが入っていたら表示としようかと思ったが、
よくわからなくなったし、単純に%sとname変数で問題なく表示されたので
そのようにした。
同じように、if文でその他が選択されたらテキストエリアも表示と
定義付けようかと思ったが、これも単に%sとname変数で、
空のときは代入されないので見えない、という形にした。
参考文献
基礎プログラミング II 第8回 CGIことはじめ
「基本の CGI ホームページの作りかた」
http://roy/~madoka/2010/r2/08/08_06_theme_05_firstcgi.html
基礎プログラミング II 第9回 CGIことえらび 「ラジオボタンの作り方」
http://roy/~madoka/2010/r2/09/09_04_theme_02_radio.html
基礎プログラミング II 第9回 CGIことえらび 「チェックボックスの作り方」
http://roy/~madoka/2010/r2/09/09_05_theme_03_checkbox.html
基礎プログラミング II 第9回 CGIことえらび 「テキストフィールドの作り方」
http://roy/~madoka/2010/r2/09/09_06_theme_04_textfield.html
基礎プログラミング II 第9回 CGIことえらび 「テキストエリアの作り方」
http://roy/~madoka/2010/r2/09/09_07_theme_05_textarea.html
以上の作者: 西村まどか
(CSSの参考文献)
情報リテラシー2 第9回
http://roy/~yamamoto/text09/k209.html
---------------------------------------------------------------------------
3.
今回は久々にCSSを使った。敬遠していたが使っているうちに仕組みが
今更ながらわかってきて、好きになった。
段落の背景色が決められるので、帯のようなデザインができてよいと思う。
CGIスクリプトも苦戦してきたが、htmlのように正しい書き方で書いていけば
完成するので、書き方を覚えれば楽だと思った。
すごいと思った作品: 沓沢 悠治先輩
http://roy/~c108032/advertise2/rubycgi/r2_cgi_best.html
ベストセラーやカテゴリー別など結果の分岐がすごいとおもった。
正直「よかったレポート」でプログラムを見てみても、どうなっているのか
よくわからなかった。
絵やパロディのしかたもセンスが感じられて良いと思った。
共同学習者: 笹原千珠子