プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。
よろしくお願い致します。

現在、Web上でアンケートを実施しています。
普通にhtmlのフォームでアンケートを作り、sendmail.cgiを使って回答結果が自分のメールアドレスに送られてくるように設定しています。

これまではそれで良かったのですが、
回答人数が多くなり、集計が大変なので、
今使っているアンケートのhtmlとcgiを活かして、
csv形式で回答を入手する方法がないかと考えています。

例えば、cgiに少し記述を付け加えるとか、
そういった程度の修正で何とかできないものでしょうか?
どなたかご存じの方、記述方法など教えていただけると、とても助かります。
よろしくお願い致します。

A 回答 (4件)

#! /usr/local/bin/perl



$name="マツケンサンバ";
$add="六本木ヒルズ";
$tel="03-1234-5678";
$write_data=join(",",$name,$add,$tel)."\n";

open(FH,">>./Data.csv");
flock FH,LOCK_EX;
print FH $write_data;
close FH;

データをCSVファイルに追加保存するPerlコードです。
ご参考にどうぞ
    • good
    • 0
この回答へのお礼

ありがとうございます!
さっそく参考にさせていただいて、試してみています。
csvにはなっているような感じですが、文字化け?していてさっぱりわかりません。どうしたら良いのでしょうか?

お礼日時:2005/04/15 15:02

Perlですよね。


csvがEUCコードで出力されちゃってるのではないでしょうか?
「jcode.pl」などを利用し、SJISに変換してから出力すると良いかもしれません。
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみませんでした。
参考にさせていただき、もうちょっとがんばってみます!ありがとうございました。

お礼日時:2005/05/19 09:28

>文字化け?していてさっぱりわかりません。


先に回答したサンプルコードを実行すると文字化けするということですか?それともそれを参考に、sendmail.cgiを改良して実行してみたら文字化けしたということですか?
後者なら、Sendmailでmailtoやmailfromをつくる時に
mimeencode(変数)でMIMEエンコードするので、それをやった後のデータをCSVに保存すると文字化け(正確にはそうじゃないけど)した様になりますが・・・
それじゃあこうすればどうですか
例えばメールフォームから送信されたデータがname、add、telだとすれば、
$write_data=join(",",$name,$add,$tel)."\n";

$write_data=join(",",$in{'name'},$in{'add'},$in{'tel'})."\n";
という様にしてみればいかがですか
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみませんでした。
結局できなくて、他の人にお願いをしたのですが
自分の勉強のためにも、もうちょっとやってみます。
ありがとうございました。

お礼日時:2005/05/19 09:27

データをcsv保存でき、メールの送信するわけですね。


http://www.tryhp.net/webhandler.htm
のアンケートはその機能付きです。

参考にしてみてはいかがでしょうか
    • good
    • 0
この回答へのお礼

ありがとうございます!
確認してみたのですが、どこからどこまでが何のための記述だかわからなくて・・・。
こんな素人の私にはやっぱり無理なんでしょうかね。

お礼日時:2005/04/15 15:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!