第10回 ことおぼえ レポート課題 氏名:菅原彩花 学籍番号:c1101253 語学クラス:英語6 コース:政策マネジメントコース 1、筆記問題 pstoreはopen-endを使ったファイルへの書き込みと似ている。open-endではセキュ リティの面で不充分な面があるが、pstoreという新たなディレクトリを作成し、 その中だけ第三者が書き込めるようにしておくことで他のディレクトリにあるファ イルが守られる。 このpstoreを使う際にはbubyプログラムの最初にrequire'cgi'と共に require'pstore'と書く必要がある。加えて変数名=PStore("xxx.db( dbファイルの名前)")を書くことでxxx.dbに第三者から入力されたものが書き込 まれいく。 2、プログラム問題(K:感想を書き込んでもらうシステム) 掲載URL: http://roy.e.koeki-u.ac.jp/~c110125/advertise2/rubycgi/r2_cgi_best.html A、作成意図 今までに作成したWEBページやプログラムについての感想や意見などはメールで しか作成者に伝える手段がなかった。しかしメールではメールソフトを起動した りと手間がかかってしまうため敬遠されることが想定される。感想・意見をhtml 上で簡単に意見を言うことができればより多くの意見をもらうことができると思 い作成した。 B、作成したhtml(r2_cgi_best.html) 感想を書こう

ようこそいらっしゃいましたっ!!

*ぜひとも以下に感想を書いて下さいっ*

*今までの感想を閲覧したい方はこちらです*

最新の感想は一番下にあります。
また古い感想は定期的に削除しています。

*ここをクリック*

*後期広告ページに戻る*

C、作成したrubyプログラム(nikki.rb) #!/usr/bin/env ruby $KCODE = 'e' #日本語を使うと宣言 require 'cgi' #cgiを使うと宣言 cgi = CGI.new('html4') #出力する際にはhtml4を使用する print("Content-type:text/html;charset=EUC-jp\n\n") #出力時には日本語を使用する name = cgi["name"] #cgiからもらってきたnameという変数をnameとする sex = cgi["sex"] #cgiからもらってきたsexという変数をsexとする main = cgi["main"] #cgiからもらってきたmainという変数をmainとする time = Time.now #その時の時間をtimeに入れる #名前か本文のどちらかまたは両方が入力されていない場合 if name == "" || main == "" #もしnameかmainの中が空だったら print("\n") #htmlのはじまり print("\n") #htmlで表示されない部分のはじまり print("エラー\n") #タブに表示されるタイトル print("") #cssは別のファイルmani3.cssを使用 print("\n") #表示されない部分の終わり print("\n") #表示される部分のはじまり print("

ニックネームか本文がないので
もう一度やり直してください

\n") print("

前のページに戻る

\n") print("\n") #html本体の終わり print("\n") #htmlの終わり #名前本文の両方が入力されている場合 else print("\n") #htmlのはじまり print("\n") #htmlで表示されない部分のはじまり print("感想\n") #タブに表示されるタイトル print("") #cssは別のファイルmani2.cssを使用 print("\n") print("\n") open("nikki.txt","a") do |write| #writeは変数 #open do-endでファイルを開いて(nikki.txt","a")とすることでnikki.txtに追加的に書き込む #以下がファイルに書き込む内容 write.printf("\n-------------------------\n%s\n 名前:%sさん %s\n本文--------------------- \n %s \n\n",time,name,sex,main) end #open doのend printf("

%sさんが書いた感想

\n",name) #結果の表示内容 printf("


----------------------------
%s
名前:%sさん %s
本文------------------------
%s
----------------------------

\n",time,name,sex,main) print("

いままでの感想はこちら

\n") print("\n") #html本体の終わり print("\n") #htmlの終わり end D、プログラムの実行結果 (1)名前だけが入力されていない場合 roy{c110125}% ./nikki.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) name="" sex="男性" main="あいうえお" Content-type:text/html;charset=EUC-jp エラー

ニックネームか本文がないので
もう一度やり直してください

前のページに戻る

(2)本文だけが入力されていない場合 (offline mode: enter name=value pairs on standard input) name="さやか" sex="女性" main="" Content-type:text/html;charset=EUC-jp エラー

ニックネームか本文がないので
もう一度やり直してください

前のページに戻る

(3)名前、本文の両方が入力されていない場合 roy{c110125}% ./nikki.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) name="" sex="男性" main="" Content-type:text/html;charset=EUC-jp エラー

ニックネームか本文がないので
もう一度やり直してください

前のページに戻る

(4)どちらも入力してある場合 roy{c110125}% ./nikki.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) name="さやか" sex="女性" main="あいうえお" Content-type:text/html;charset=EUC-jp 感想

さやかさんが書いた感想


----------------------------
Sat Dec 10 16:06:28 +0900 2011
名前:さやかさん 女性
本文------------------------
あいうえお
----------------------------

いままでの感想はこちら

E、考察 Dの実行結果より(1)〜(3)までの名前と本文いずれか、または両方が入力されて いない場合にはエラーが表示された。また両方が入力されている場合には書いた 日記が表示されたので正常に実行されている。 3、感想 CGIで興味のある作品 URL:http://roy/~c110188/advertise2/rubycgi/fork.html 理由 cgiのページのリンクの上に簡単な説明がきちんと載っていることや色の組合せ が字が読みやすいようになっていること。 また計算プログラムではただ足算や引算などの計算をするのではなく、買い物をして レシートを出力するなどアイディアに富んでいる構成になっているからである。 今回もifが正常に動かないというアクシデントがあったが、試行錯誤して正常に 動くようにすることができた。今回作成したプログラムは少し変更すれば日記を 書いて表示させることやその日記に対してのコメントを表示させることも可能な のではと思った。 また.rbで出力するのではなく.htmlのかたちで出力されたかったがssiの仕組み など分からない点が多かったのでできなかった。自分で勉強してみたい。 ------------------- 東北公益文科大学 公益学部 公益学科 2年 菅原彩花 c110125@f.koeki-u.ac.jp