#!/usr/bin/perl
###< Define Section >#################################################
#■システム設定
require './jcode.pl';
require '../common/search.pl';
$| = 1;
$MY_SCRIPT = 'index.cgi';
#■ログファイル
$logfile = './dat_bukken.cgi';
$cityfile = '../common/city.txt';
#■登録フォーム
$Display_Form = "tmpl_form.html";
#■検索画面フォーム
$Display_Screen = "tmpl_screen.html";
#■1ページ当り表示件数
$pview = 100;
#■URL
$URL = 'https://www.ihin1.jp/area/';
# $URL = 'http://www.df-co.jp/web2/ihin1/area/';
###< Program Section >################################################
# メイン処理
######################################################################
&Get_Param_rtn(*FORM,'euc','
');
&Get_Param_rtn(*PRM,'euc','
');
($timenow,$datenow) = &Get_Date(time,2);
# 検索情報を整理
if($FORM{'pref'}){ $PRM{'pref'} = $FORM{'pref'}; }else{ $PRM{'pref'} = $PRM{'pref'}; }
if($FORM{'city'}){ $PRM{'city'} = $FORM{'city'}; }else{ $PRM{'city'} = $PRM{'city'}; }
if($PRM{'city'}){
&Display_Form_rtn;
}else{
&Find_Data;
}
exit;
######################################################################
# 検索処理 #
######################################################################
sub Find_Data {
my $pref_code;
foreach (sort keys %CITY){
if($PRM{'pref'} eq $PREF_ROMA{$_}){
$pref_code = $_;
last;
}
}
$town = $CITY{$pref_code};
$town =~s/県//g;
$town =~s/府//g;
$town =~s/東京都/東京/g;
$i = 0;$count = 0;
$products_list = '';
$color_count = 0;
$max = '0';
open(IN,"$cityfile") || &error("Open Error : $cityfile");
while () {
chomp;
($citycode,$prefcode,$cityname,$cityroma,$groupname) = split(/\t/);
if($pref_code eq $prefcode){
push(@DATABASE,$_);
$max++;
}
next;
}
close(IN);
foreach $DATABASE (@DATABASE) {
($citycode,$prefcode,$cityname,$cityroma,$groupname) = split(/\t/,$DATABASE);
$products_list .= qq{$groupname$cityname\n};
}
if($max){
}else{
$result = '';
$pagenavi = '';
$products_list =<<"__PLIST__";
該当する登録内容はありません。
__PLIST__
}
jcode::convert( \$town, 'sjis' );
jcode::convert( \$products_list, 'sjis' );
print "Content-Type: text/html\n\n";
open(HTML,"$Display_Screen") || die "Can't Open HTML:$Display_Screen $!\n";
while () {
s/(\$[\w\d\{\}\[\]\']+)/$1/eeg;
s/\.\.\//\.\.\/\.\.\//g;
# s/\.\//\.\.\/\.\.\//g;
print;
}
close(HTML);
exit;
}
######################################################################
# フォームの表示
######################################################################
sub Display_Form_rtn {
my $pref_code;
foreach (sort keys %CITY){
if($PRM{'pref'} eq $PREF_ROMA{$_}){
$pref_code = $_;
last;
}
}
$pref = $CITY{$pref_code};
open(IN,"$cityfile") || &error("Open Error : $cityfile");
while () {
chomp;
($citycode,$prefcode,$cityname,$cityroma,$groupname) = split(/\t/);
last if $pref_code eq $prefcode && $PRM{'city'} eq $cityroma;
next;
}
close(IN);
jcode::convert( \$pref, 'sjis' );
jcode::convert( \$cityname, 'sjis' );
jcode::convert( \$groupname, 'sjis' );
# @new=();
# open(IN,"$logfile") || &error("Open Error : $logfile");
# while () {
# ($no,$entrydate,$entrytime,$filename1,$filename2,$filename3,$filename4,$filename5,$FORM{'b001'},$FORM{'b002'},$FORM{'b003'},$FORM{'b004'},$FORM{'b005'},$FORM{'b006'},$FORM{'b007'},$FORM{'b008'},$FORM{'b009'},$FORM{'b010'},$FORM{'b011'},$FORM{'b012'},$FORM{'b013'},$FORM{'b014'},$FORM{'b015'},$FORM{'b016'},$FORM{'b017'},$FORM{'b018'},$FORM{'b019'},$FORM{'b020'},$FORM{'b021'},$FORM{'b022'},$FORM{'b023'},$FORM{'b024'},$FORM{'b025'},$FORM{'b026'},$FORM{'b027'},$FORM{'b028'},$FORM{'b029'},$FORM{'b030'},$FORM{'b031'},$FORM{'b032'},$FORM{'b033'},$FORM{'b034'},$FORM{'b035'},$FORM{'b036'},$FORM{'b037'},$FORM{'b038'},$FORM{'b039'},$FORM{'b040'},$FORM{'b041'},$FORM{'b042'},$FORM{'b043'},$FORM{'b044'},$FORM{'b045'},$FORM{'b046'},$FORM{'b047'},$FORM{'b048'},$FORM{'b049'},$FORM{'b050'},$FORM{'b051'},$FORM{'b052'},$FORM{'b053'},$FORM{'b054'},$FORM{'b055'},$FORM{'b056'},$FORM{'b057'},$FORM{'b058'},$FORM{'b059'},$FORM{'b060'},$FORM{'b061'},$FORM{'b062'},$FORM{'b063'},$FORM{'b064'},$FORM{'b065'},$FORM{'b066'},$FORM{'b067'},$FORM{'b068'},$FORM{'b069'},$FORM{'b070'},$FORM{'b071'},$FORM{'b072'},$FORM{'b073'},$FORM{'b074'},$FORM{'b075'},$FORM{'b076'},$FORM{'b077'},$FORM{'b078'},$FORM{'b079'},$FORM{'b080'},$FORM{'b081'},$FORM{'b082'},$FORM{'b083'},$FORM{'b084'},$FORM{'b085'},$FORM{'b086'},$FORM{'b087'},$FORM{'b088'},$FORM{'b089'},$FORM{'b090'},$FORM{'b091'},$FORM{'b092'},$FORM{'b093'},$FORM{'b094'},$FORM{'b095'},$FORM{'b096'},$FORM{'b097'},$FORM{'b098'},$FORM{'b099'},$FORM{'b100'},$FORM{'b101'},$FORM{'b102'},$FORM{'b103'},$FORM{'b104'},$FORM{'b105'},$FORM{'b106'},$FORM{'b107'},$FORM{'b108'},$FORM{'b109'},$FORM{'b110'},$FORM{'b111'},$FORM{'b112'},$FORM{'b113'},$FORM{'b114'},$FORM{'b115'},$FORM{'b116'},$FORM{'b117'},$FORM{'b118'},$FORM{'b119'},$FORM{'b120'}) = split(/\t/);
# if ($PRM{'key'} eq $no) {
# $_="$no\t$entrydate\t$entrytime\t$filename1\t$filename2\t$filename3\t$filename4\t$filename5\t$FORM{'b001'}\t$FORM{'b002'}\t$FORM{'b003'}\t$FORM{'b004'}\t$FORM{'b005'}\t$FORM{'b006'}\t$FORM{'b007'}\t$FORM{'b008'}\t$FORM{'b009'}\t$FORM{'b010'}\t$FORM{'b011'}\t$FORM{'b012'}\t$FORM{'b013'}\t$FORM{'b014'}\t$FORM{'b015'}\t$FORM{'b016'}\t$FORM{'b017'}\t$FORM{'b018'}\t$FORM{'b019'}\t$FORM{'b020'}\t$FORM{'b021'}\t$FORM{'b022'}\t$FORM{'b023'}\t$FORM{'b024'}\t$FORM{'b025'}\t$FORM{'b026'}\t$FORM{'b027'}\t$FORM{'b028'}\t$FORM{'b029'}\t$FORM{'b030'}\t$FORM{'b031'}\t$FORM{'b032'}\t$FORM{'b033'}\t$FORM{'b034'}\t$FORM{'b035'}\t$FORM{'b036'}\t$FORM{'b037'}\t$FORM{'b038'}\t$FORM{'b039'}\t$FORM{'b040'}\t$FORM{'b041'}\t$FORM{'b042'}\t$FORM{'b043'}\t$FORM{'b044'}\t$FORM{'b045'}\t$FORM{'b046'}\t$FORM{'b047'}\t$FORM{'b048'}\t$FORM{'b049'}\t$FORM{'b050'}\t$FORM{'b051'}\t$FORM{'b052'}\t$FORM{'b053'}\t$FORM{'b054'}\t$FORM{'b055'}\t$FORM{'b056'}\t$FORM{'b057'}\t$FORM{'b058'}\t$FORM{'b059'}\t$FORM{'b060'}\t$FORM{'b061'}\t$FORM{'b062'}\t$FORM{'b063'}\t$FORM{'b064'}\t$FORM{'b065'}\t$FORM{'b066'}\t$FORM{'b067'}\t$FORM{'b068'}\t$FORM{'b069'}\t$FORM{'b070'}\t$FORM{'b071'}\t$FORM{'b072'}\t$FORM{'b073'}\t$FORM{'b074'}\t$FORM{'b075'}\t$FORM{'b076'}\t$FORM{'b077'}\t$FORM{'b078'}\t$FORM{'b079'}\t$FORM{'b080'}\t$FORM{'b081'}\t$FORM{'b082'}\t$FORM{'b083'}\t$FORM{'b084'}\t$FORM{'b085'}\t$FORM{'b086'}\t$FORM{'b087'}\t$FORM{'b088'}\t$FORM{'b089'}\t$FORM{'b090'}\t$FORM{'b091'}\t$FORM{'b092'}\t$FORM{'b093'}\t$FORM{'b094'}\t$FORM{'b095'}\t$FORM{'b096'}\t$FORM{'b097'}\t$FORM{'b098'}\t$FORM{'b099'}\t$FORM{'b100'}\t$FORM{'b101'}\t$FORM{'b102'}\t$FORM{'b103'}\t$FORM{'b104'}\t$FORM{'b105'}\t$FORM{'b106'}\t$FORM{'b107'}\t$FORM{'b108'}\t$FORM{'b109'}\t$FORM{'b110'}\t$FORM{'b111'}\t$FORM{'b112'}\t$FORM{'b113'}\t$FORM{'b114'}\t$FORM{'b115'}\t$FORM{'b116'}\t$FORM{'b117'}\t$FORM{'b118'}\t$FORM{'b119'}\t$FORM{'b120'}\t\n";
# push(@new,$_);
# last;
# }
# }
# close(IN);
#
# foreach (keys %FORM){
# jcode::convert( \$FORM{$_}, 'sjis' );
# }
$template = "$Display_Form";
print "Content-Type: text/html\n\n";
open(HTML,"$template") || die "Can't Open HTML:$template $!\n";
while () {
s/(\$[\w\d\{\}\[\]\']+)/$1/eeg;
s/\.\.\//\.\.\/\.\.\//g;
print;
}
close(HTML);
exit;
}
######################################################################
# 日付取得処理
# IN: 時間,日付区分
# OUT:
# 日付区分
# DEFULT:YYYY,MM,DD,HH,MM,SS,WW
# 1:YYYYMMDD
# 2:HH:MM:SS,YYYY/MM/DD
# 3:HH時MM分,YYYY年MM月DD日
# 4:HHMMSS
######################################################################
sub Get_Date {
local($T_Time,$T_D) = @_;
local($T_Date);
local($sec,$min,$hour,$mday,$mon,$year,$wday,$dummy) = localtime($T_Time);
$mon++;
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
if ($sec < 10) { $sec = "0$sec"; }
if ($mon < 10) { $mon = "0$mon"; }
if ($mday < 10) { $mday = "0$mday"; }
$year += 1900;
if ($T_D == 1) { return("$year$mon$mday"); }
elsif ($T_D == 2) { return("$hour:$min:$sec","$year-$mon-$mday"); }
elsif ($T_D == 3) { return("$hour時$min分","$year年$mon月$mday日"); }
elsif ($T_D == 4) { return("$hour$min$sec"); }
else { return($year,$mon,$mday,$hour,$min,$sec,$wday); }
}
######################################################################
# 引数取得処理
######################################################################
sub Get_Param_rtn {
local(*in,$jpcode,$cr,*substitute) = @_;
local($buffer,@pairs,$pair,$key,$value,@inputs,$data,$info,$type,$fname);
if ($ENV{'REQUEST_METHOD'} eq 'GET') { $buffer = $ENV{'QUERY_STRING'}; }
else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
if ($ENV{'CONTENT_TYPE'} =~ m!multipart/form-data; boundary=(.+)$!) {
$boundary = '--'.$1;
@inputs = split(/$boundary/, $buffer);
foreach (@inputs) {
if ((!$_) || (/^--/)) { ; }
else {
$key = $value = $type = '';
$data = $_;
$data =~ /\r\n\r\n|\n\n/;
$info = $`;
$value = $';
$value =~ s/\n$//;
$value =~ s/\r$//;
if ($info =~ /Content-Disposition:\s*form-data;\s*name="(\w+)"/i) {
$key = $1;
$key =~ tr/+/ /;
$key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
}
else { next; }
if ($info =~ /filename="(.+)"/i) {
$fname = $1;
$fname =~ tr/+/ /;
$fname =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$PRM{$key,'filename'} = $fname;
}
if ($info =~ /Content-Type:\s*(\S+)/i) {
$type = $1;
$type =~ tr/A-Z/a-z/ ;
}
if (($type =~ m!text/(\w+)!) || ($type =~ m!application/(\w+)!) || ($type =~ m!image/(\w+)!)) {
$PRM{$key} = $value;
$PRM{$key,'type'} = $1;
}
elsif ($type eq '') {
&Exchange_Form($key,$value);
}
}
}
}
else {
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($key, $value) = split(/=/, $pair);
$key =~ tr/+/ /;
$key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&Exchange_Form($key,$value);
}
}
}
######################################################################
# FORM情報設定メイン処理
######################################################################
sub Exchange_Form {
local($key,$value) = @_;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($jpcode) { &jcode'convert(*value,$jpcode); }
$value =~ s/\r\n/\n/g;
$value =~ s/\r/\n/g;
$value =~ s/\n/$cr/g;
$value =~ s/\t//g;
$value =~ s/