#!/usr/bin/env perl
# SSENQ --- Small Simple ENQuete system
use strict;
use CGI;
use POSIX qw(strftime);
# 書き込み先ファイルの準備: touch log.txt; chmod 622 log.txt
my $log_file = 'log.txt';
my $q = new CGI;
#print $q->header();
print $q->header(-type => 'text/html; charset=EUC-JP'); # for 日本語 (EUC-JP)
print $q->start_html(-title=>'enq');
if ($q->param("mode") eq "ANSWER") { # answer
open(F, ">> $log_file") or die;
flock(F, 2); # lock the file
print F "-" x 70, "\n"; # delimitter
print F strftime("%Y-%m-%d-%H-%M-%S", localtime), "\n"; # 日時データ
print F $q->remote_host(), "\n"; # host name or IP
foreach my $i ($q->param) {
print F "$i: ".$q->param($i)."\n"; # パラメータの出力
} # print F $q->Dump; (or $q->dump) も手軽
close(F);
print "Thank you!"; # message
} else { # question
print
$q->h1("アンケート - Enquete"),
$q->startform(-name => 'myform'),
"Q1: ", $q->textfield(-name => 'text'),
"
Q2: ", $q->radio_group(-name => 'radio',
-value => ['1', '2', '3']),
"
Q3: ", $q->checkbox_group(-name => 'checkbox',
-values => ['A', 'B', 'C']),
"
Q4: ", $q->popup_menu(-name => 'select',
-values=>['a', 'b', 'c']),
"
Q5: ", $q->textarea(-name => 'textarea', -rows=>3, -columns=>30),
$q->hidden(-name => 'mode', -default => ['ANSWER']),
$q->submit, $q->reset,
$q->endform, "\n";
}
print $q->end_html(), "\n";