#!/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";