出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() |
[5272] CSVファイルへ書き込む |
投稿者:りんりんさん 2005/09/26 17:42:41 |
初めまして。卒論でASPを利用してアンケート集計システムを作成しているのですが、アンケートの結果をCSVファイルとして保存したいのですが、いろいろなサイトのプログラムを実際に使ってみてもうまくいきません。 お力を貸して頂けないでしょうか。よろしくお願いします。 プログラムは以下の通りです。 <HTML> <HEAD> <TITLE>アンケート</TITLE> </HEAD> <BODY BGCOLOR="white"> <CENTER> <center><font size="+2">アンケート</font> <% pfile = Request("userid") & vbCrLf pfile = pfile & Request("pass") & vbCrLf pfile = pfile & Request("feeling") & vbCrLf Set fs = Server.CreateObject("Scripting.FileSystemObject") Set csvfile = fs.CreateTextFile("anketo.csv",8,True) csvfile.WriteLine(pfile) csvfile.Close %> <BR><BR><BR> <FONT SIZE=4 COLOR="#6699ff"> アンケートにご協力ありがとうございました。 </FONT> </body> </html> Set csvfile = fs.CreateTextFile("anketo.csv",8,True) このプログラムがダメといつも言われ、書き込みできないと書かれています。 |
[5277] Re:CSVファイルへ書き込む |
投稿者:YasNet(管理人)さん 2005/09/27 12:41:24 |
こんにちは YasNet(管理人)です。 投稿用に編集されたのでしょうか? これだと表示した瞬間に書き込みを実行しませんか? 後はパスが指定されていないので以下のように指定してみましょう。 fs.CreateTextFile(Server.MapPath("anketo.csv"),True) パラメータの8ってなんでしたっけ? それでは 失礼致します。 > 初めまして。卒論でASPを利用してアンケート集計システムを作成しているのですが、アンケートの結果をCSVファイルとして保存したいのですが、いろいろなサイトのプログラムを実際に使ってみてもうまくいきません。 > お力を貸して頂けないでしょうか。よろしくお願いします。 > > プログラムは以下の通りです。 > > <HTML> > <HEAD> > <TITLE>アンケート</TITLE> > </HEAD> > > <BODY BGCOLOR="white"> > <CENTER> > <center><font size="+2">アンケート</font> > <% > pfile = Request("userid") & vbCrLf > pfile = pfile & Request("pass") & vbCrLf > pfile = pfile & Request("feeling") & vbCrLf > Set fs = Server.CreateObject("Scripting.FileSystemObject") > Set csvfile = fs.CreateTextFile("anketo.csv",8,True) > > csvfile.WriteLine(pfile) > csvfile.Close > > > %> > > <BR><BR><BR> > <FONT SIZE=4 COLOR="#6699ff"> > アンケートにご協力ありがとうございました。 > </FONT> > > </body> > </html> > > Set csvfile = fs.CreateTextFile("anketo.csv",8,True) > このプログラムがダメといつも言われ、書き込みできないと書かれています。 > |
[5297] Re:CSVファイルへ書き込む |
投稿者:Lightningさん 2005/09/30 14:03:38 |
とりあえず、入力フォームは別にあって、そのフォームからこのASPが呼ばれると仮定します。 > <HTML> > <HEAD> > <TITLE>アンケート</TITLE> > </HEAD> > > <BODY BGCOLOR="white"> > <CENTER> > <center><font size="+2">アンケート</font> > <% > pfile = Request("userid") & vbCrLf > pfile = pfile & Request("pass") & vbCrLf > pfile = pfile & Request("feeling") & vbCrLf VBcrlfて改行だから、CSVにはなりませんね。 最後のcrlfはwritelineにするのならば付けると一行空いてしまうので注意。 Tab区切りCSVなら > pfile = Request("userid") & vbTab > pfile = pfile & Request("pass") & vbTab > pfile = pfile & Request("feeling") カンマ区切りなら > pfile = Request("userid") & "," & Request("pass") & "," & Request("feeling") > Set fs = Server.CreateObject("Scripting.FileSystemObject") > Set csvfile = fs.CreateTextFile("anketo.csv",8,True) 8は[ForAppending]なので正しいです(一応書いとく) が、問題はそこじゃなく・・・ set csvfile = fs.OpenTextFile(Server.mappath("./anketo.csv"),8,true) だったりします。 Createでは作るだけでcsvfileにsetされませんから〜 > csvfile.WriteLine(pfile) > csvfile.Close > > > %> > > <BR><BR><BR> > <FONT SIZE=4 COLOR="#6699ff"> > アンケートにご協力ありがとうございました。 > </FONT> > > </body> > </html> set 〜〜 = nothing を忘れないようにしてください。 > Set csvfile = fs.CreateTextFile("anketo.csv",8,True) > このプログラムがダメといつも言われ、書き込みできないと書かれています。 だめですもん。間違ってますからw 卒論でやるのであればこれくらいは自力でやんないと不可になっちゃうよ? #私のいた研究室はもっと厳しかったぞ? |
[5298] Re:CSVファイルへ書き込む |
投稿者:Lightningさん 2005/09/30 14:08:06 |
追記 RequestはちゃんとRequest.formとRequest.QueryStringを使い分けましょう。 これは意外と重要で、HTMLを書き換えるとハッキング行為であるという裁判判例はありますが、URLを書き換えてもハッキング行為であるという判例はないのでHTMLを閲覧して、URLにGET風に書き込んで中からファイルを取り出すという方法で重要ファイルをもっていかれてもハッキングじゃないという扱いになりかねないんでね〜 つOFFICE氏の件 #office、ACCSで検索すると何のことかわかるかも |
TreeBBS For ASP V.0.1.3 |