#!/usr/bin/perl
#-----------------------------------------------
# form.cgi written by T.MIZOBUCHI
#-----------------------------------------------
use strict;
require 'jcode.pl';
require 'cgi-lib.pl';
### フォームから受けとる変数
my %in;
my $name;
my $sex;
my $married;
my $job;
my $address;
#######################################################
### main
#######################################################
### HTML Header
print "Content-type: text/html\n\n";
&print_header();
### フォームデータ取得
&ReadParse(\%in);
$name = $in{'name'};
$sex = $in{'sex'};
$married = $in{'married'};
$job = $in{'job'};
$address = $in{'address'};
### euc にコンバート
### タグ・改行置換 Cross Site Scripting 対策
&tag_trans($name);
&tag_trans($sex);
&tag_trans($married);
&tag_trans($job);
&tag_trans($address);
print <<"EOF";
Registration Form Example
source (form.cgi)
EOF
&print_form();
&print_footer();
######### Main ended #################################
#######################################################
### Print HTML Header
#######################################################
sub print_header{
print <<"EOF";
Form Exemple
EOF
}
#######################################################
### Print HTML Footer
#######################################################
sub print_footer{
print <<"EOF";
EOF
}
######################################################
### フォーム内容表示
######################################################
sub print_form{
print <<"EOF";
Name : $name
Sex : $sex
Married : $married
Occupation : $job
Address :
$address
|
EOF
}
###################################################
### タグ・改行置換
###################################################
sub tag_trans{
### euc にコンバート
&jcode::convert(\$_[0],'euc');
### タグ置換
$_[0] =~ s/&/&/g;
$_[0] =~ s/</g;
$_[0] =~ s/>/>/g;
### 改行置換
$_[0] =~ s/\r\n/
/g;
$_[0] =~ s/\r/
/g;
$_[0] =~ s/\n/
/g;
}