生成されたCGIプログラム(Perl)サンプル


#!/usr/bin/perl
#

require '/usr/local/www/cgi-bin/jcode.pl';

print "Content-type: text/html\n\n";
print "< HTML>< HEAD>< TITLE>受信状況レポート</TITLE>< /HEAD>\n";
print "< BODY BGCOLOR=\"LAVENDER\">\n";
$csv = "/usr/local/www/data/sample.csv";


$item[0] = 'Q0101RN';
$item[1] = 'Q0201CN';
$item[2] = 'Q0202CN';
$item[3] = 'Q0203CN';
$item[4] = 'Q0204CN';
$item[5] = 'Q0205CN';
$item[6] = 'Q0301CN';
$item[7] = 'Q0302CN';
$item[8] = 'Q0303CN';
$item[9] = 'Q0304CN';
$item[10] = 'Q0305CN';
$item[11] = 'Q0306CN';
$item[12] = 'Q0307TA';
$item[13] = 'Q0401TN';
$item[14] = 'Q0402TN';
$item[15] = 'Q0403TN';
$item[16] = 'Q0501TN';
$item[17] = 'Q0502TA';
$item[18] = 'Q0503TA';
$item[19] = 'Q0504TA';
$item[20] = 'Q0505TA';
$item[21] = 'Q0601XA';

read(STDIN, $_, $ENV{'CONTENT_LENGTH'});
split (/&/);

foreach (@_) {
        ($name,$value) = split (/=/);
        $value =~ s/\+/ /g;
        $value =~ s/%(..)/pack("C", hex($1))/eg;
        &jcode'convert(*value, 'sjis');
        $form{$name} = $value;
}

$line = "";
foreach $name(@item) {
             $value = $form{$name};
             if ($name =~ /A/) {
             $value =~ s/\r\n/\n/g;
             $value =~ s/\r/\n/g;
             $value =~ s/\"/\"\"/g;
             $value = "\"" . $value . "\"";
             }else{
             $value =~ s/,//g;
             }
             $line .= $value . ",";
}
chop $line;
$line .= "\r\n";

$id = "";
foreach( @item ) {
       chop($_);
       chop($_);
       $id .= "\"" . $_ . "\",";
}
chop($id);
$id .= "\r\n";

if(! -e $csv) {
        open(FILE, "> $csv");
        print FILE $id;
        close(FILE);
}
if(! open(CSV, ">> $csv")){
        print "< h2>サーバーが混んでいます。\nしばらく待ってから再度送信してください。</h2>\n";
        print "</BODY></HTML>\n";
        exit;
}
flock(CSV,2);
print CSV $line;

flock(CSV,8);
close(CSV);
print "< h2>送信データを受け取りました。</h2> \n";
print "</BODY></HTML>\n";