#!/usr/local/bin/perl # ---------------------------------------------------------- # # CGI for Questionnaire ver1.5: Created on : 08/11/2002 # Last Modified : 08/29/2002 # (C) Copyright 2002- by K.Toyama toyama@mx4.canvas.ne.jp # ---------------------------------------------------------- require "cgi-lib.pl"; require 'jcode.pl'; &ReadParse; &getDayTime; $csv=$in{"csv"}; $num=$in{"num"}; for($i=1;$i<=$num;$i++){ ###############################質問紙からのデータを受け取ります。 $q[$i] =$in{"q[$i]"}; $q[$i] =~ s/\r//g; # 改行コードを置換する $q[$i] =~ s/\n//g; # 改行コードを置換する $q[$i] =~ s/(?:\x81\x40)//g; # 全角の空白を置換する $q[$i] =~ s/,/、/g; # コンマを点に置換する } for($i=1;$i<=$num;$i++)##################################入力もれののチェックをします。 { if ( length ($q[$i])== 0 ) { &errExit("未入力","未入力の項目があります。");########入力もれがあれば、エラーのサブルーチンへ exit; } } ######################################################データ格納用のcsvファイルに保存します。 open(IN,">>$csv"); flock(IN,2); $i=1; while($i<=$num){ print IN "$q[$i],"; $i=$i+1; } print IN "$longdate\n";################################サブルーチンから日時を取得し書き込ませます。 flock(IN,8); close(IN); print "Content-type: text/html\n\n"; #正常な場合、謝辞を出力して終了します。 print "\n\nwrite completed\n\n"; print "

\n"; # print "$q[0]"; print "ご協力ありがとうございました。
今後ともよろしくお願いします!"; print "

"; print "\n"; #####################################################入力もれがあると、エラーメッセージを出し、先には行けません。 sub errExit { local($message,$com)=@_; for($i=1;$i<=$num;$i++){ if ( length ($q[$i])== 0 ) { $q[$i]='未入力'; } } print "Content-type: text/html\n\n"; print "\n\n$message\n\n"; print "
\n"; print "$com\n
前に戻ってください。
\n"; print '前へ戻る'; print "";########入力もれがある場合、入力データを表示します。 $i=1; while($i<=$num) { #$_=$i+1; print ""; print ""; $i=$i+1; } print "
"; print "q$i"; print "$q[$i]
\n\n"; exit; } #-----------------sumiさんのフリーのscriptを借用しています。------------------------------------ sub getDayTime { ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time); $year=$year+1900; $mon=$mon+1; $sec = "0$sec" if $sec < 10; $min = "0$min" if $min < 10; $hour = "0$hour" if $hour < 10; $mday = "0$mday" if $mday < 10; $mon = "0$mon" if $mon < 10; $wday = ('日','月','火','水','木','金','土')[$wday]; $longdate = "$year/$mon/$mday($wday) $hour:$min:$sec"; $shortdate = "$year/$mon/$mday($wday)"; }