CSV添付機能(v4.2.2~)

入力内容を1行レコードとしてCSVファイルを作成し、それをメールに添付するための機能です。

何かしら集計であったり応募であったりして、サーバ上にデータを残したくない場合でかつExcelでの集計が必要な場合ってよくありますよね?そんな場合にオススメなのがCSV添付機能です。指定した任意の入力項目をCSV化し、それをメールに添付して送ってきます。

まぁ用途は実際限られると思いますが、ちょっとご要望を頂いたので作成いたしました。

本機能を利用する場合、config.cgiの

#push @Modules,'csvatt';

の行頭のシャープを外し、configs/csvatt.cgiに設定を記述してください。

コメント欄

2022-05-09 11:04:33佐藤さん
csv のファイル名に入力項目の一つ、例えば「職員番号」などをつけることはできないでしょうか?
2022-05-12 22:43:53和田さん
できなくはないです!librarys/csvatt/run.cgi というファイルの
push @AttachedFiles,&_ATTACHED(’data.csv’,$_CSV);
という部分のdata.csvという部分がファイル名になります。ただ脆弱性になる可能性があるためご注意ください。
2022-05-13 11:37:33佐藤さん
ご回答ありがとうございます。
ファイル名を変更できるのは分かりました。追加の質問で申し訳ありませんが、
そのファイル名に、フォームで入力した「職員番号」などの値を指定することは可能でしょうか?
例えばフォームにて「1234」と入力したら、添付されるCSVのファイル名が「1234data.csv」になるように。もし、可能である場合はお教えいただけたら幸いです。有償になる場合は、その旨お伝えください。(メールの方に返信いただいても可)
どうぞよろしくお願いいたします。
2022-05-13 16:31:22和田さん
push @AttachedFiles,&_ATTACHED(’data.csv’,$_CSV);
の部分を

if(!($_POST{’職員番号’} =~ /[^0-9]/) && !$_POST{’職員番号’}){
  push @AttachedFiles,&_ATTACHED("$_POST{’職員番号’}.csv",$_CSV);
}
else {
  push @AttachedFiles,&_ATTACHED(’data.csv’,$_CSV);
}

とすることで希望の動作になるのではないかなぁと思います。
文字コードはUTF-8Nとしてください。
2022-05-14 12:52:40佐藤さん
ご回答ありがとうございます!
こちらの問題でしょうが、ご提示いただいたコードのままだと反映されなかったので、
条件の&&以下を削ったらファイル名に反映されました。(何かあってもこちらの責任ですが・・・)
これで、落としたファイルをフォルダに入れて、パワークエリで結合することができます。
本当にありがとうございました!


2022-05-14 13:00:27和田さん
お試しいただきありがとうございます。すいません
&& !$_POST{’職員番号’}
ではなく
&& $_POST{’職員番号’}
でした。(ビックリマークなし)

この部分では数字以外の文字が入っているかどうかをチェックする部分で、一応セキュリティ的に数字以外の場合は初期値のファイル名を指定するような処理にしてみました。
2022-05-16 14:45:55佐藤さん
ありがとうございます!
修正していただいたコードで思い通りの処理になりました。
半角数字以外は data.csv になるので、セキュリティ的にもばっちりです。
この機能けっこう需要があると思うのは私だけでしょうか?
検索しても他に見つからなかったので、とても助かりました。
本当にありがとうございました!
2022-05-16 14:50:16和田さん
無事動作したようでなによりです。需要はあると思うのですが、セキュリティ的に初期値のほうが望ましいため、ファイル名は固定になっております!また機会があればご利用ください。