#!/usr/bin/perl
#
# 浅海住建 物件詳細CGI
# Scripting by murayama@i-surf.co.jp
require '../jcode.pl';
############
# 変数設定 #
############
$file = 'syakuti.txt'; #データファイル
$request_method = $ENV{"REQUEST_METHOD"}; #リクエストメソッド
$tax = 0.05; #税率
$stat = (stat($file))[9];
($null,$null,$null,$s_day,$s_mon,$s_year,$null,$null,$null) = localtime $stat;
$s_year = $s_year + 1900;
$s_mon = $s_mon + 1;
##########################
# 入力メソッドによる選択 #
##########################
sub readData
{
local(*queryString) = @_ if @_;
if ($request_method eq "GET") {&readGetData(*queryString);}
if ($request_method eq "POST") {&readPostData(*queryString);}
return 1;
}
###########################
# method=GET の場合の処理 #
###########################
sub readGetData
{
local(*queryString) = @_ if @_;
$queryString = $ENV{"QUERY_STRING"};
if ($queryString eq "") { &error('Error','Data is Empty?'); }
return 1;
}
############################
# method=POST の場合の処理 #
############################
sub readPostData
{
local(*queryString) = @_ if @_;
local($contentLength);
# 環境変数の読みこみ
$contentLength = $ENV{"CONTENT_LENGTH"};
if ($contentLength)
{
read(STDIN,$queryString,$contentLength);
}
return 1;
}
########################
# フォームデータの分割 #
########################
sub parseData
{
local(*queryString) = @_ if @_;
local($key,$value,$curString,@tmpArray,$aName);
# 文字列の分割
@tmpArray = split(/&/,$queryString);
# 文字列が無くなるまでループ
foreach $curString (@tmpArray)
{
($key,$value) = split(/=/,$curString);
if ($key ne 'start') {
$key2 = $key;
$value2 = $value;
$FORM2{$key} = $value;
}
&decodeData(*key);
&decodeData(*value);
$FORM{$key} = $value;
}
return 1;
}
############################
# フォームデータのデコード #
############################
sub decodeData
{
local(*queryString) = @_ if @_;
# 変換
$queryString =~ s/\+/ /g;
$queryString =~ s/%(\w\w)/pack("c",hex($1))/ge;
&jcode'convert(*value,'sjis');
return 1;
}
##########################
# 引継ぎデータのデコード #
##########################
sub decodeBuffer
{
local(*pairs);
local($name,$value,$name2,$value2);
@pairs = split(/&/,$FORM{'buffer'});
foreach $pair (@pairs) {
($name,$value) = split(/=/, $pair);
$name2 = $name;
$value2 = $value;
$FORM2{$name} = $value;
$value =~ tr/+/ /;
$value =~ s/%(\w\w)/pack("C", hex($1))/eg;
&jcode'convert(*value,'sjis');
#フォーム変数へ
$FORM{$name} = $value;
}
return 1;
}
##############
# エラー処理 #
##############
sub error
{
print "Content-type: text/html\n\n";
print "
$title\n";
print "\n";
print "$_[0]
\n";
print "$_[1]
\n";
print "ブラウザの[戻る]ボタンを押して前の画面に移動してください.
\n";
print "\n";
exit;
} # sub error end
##############
# カンマ消去 #
##############
sub comma_out
{
my($price) = @_ if @_;
$price = s/,//g;
return ($price);
}
##############
# カンマ挿入 #
##############
sub comma_in
{
local $_ = shift;
1 while s/^([-+]?\d+)(\d{3})/$1,$2/;
return $_;
}
################
# 検索処理 Do1 #
################
sub search_do1
{
if (!open(IN,"$file")) { &error('DB File can not Open.','Please Wait.'); }
while () {
chomp;
push(@in_file,$_);
}
close(IN);
# 商品分類検索(一覧)
foreach $in_file (@in_file) {
($bu_no,$data0,$data01,$data02,$data03,$data04,$data05,$data06,$data07,$data08,$data09,$data10,$data11,$data12,$data13,$data14,$data15,$thum01,$src01,$kukaku01,$map01) = split(/\t/,$in_file);
&jcode::tr(*bu_no,'0123456789','0-9');
if ($bu_no eq $FORM{'search_no'}) {
# 検索結果追加
&jcode::tr(*in_file,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','ABCDEFGHIJKLMNOPQRSTUVWXYZ');
&jcode::tr(*in_file,'abcdefghijklmnopqrstuvwxyz','abcdefghijklmnopqrstuvwxyz');
&jcode::tr(*in_file,'0123456789','0-9');
&jcode::tr(*in_file,' !?<>/,.',' !?<>/、.');
push(@NEW,$in_file);
}
}
return 1;
} # sub search_do1 end
####################
# 検索結果表示 Do1 #
####################
sub printResult_do1
{
&html_head;
# ヒット件数確認
$NEW = @NEW;
if (!@NEW) { print "物件番号の該当がありません。\n";}
else {
foreach $data (@NEW) {
($bu_no,$data0,$data01,$data02,$data03,$data04,$data05,$data06,$data07,$data08,$data09,$data10,$data11,$data12,$data13,$data14,$data15,$thum01,$src01,$kukaku01,$map01) = split(/\t/,$data);
if (!$data01) { $data01 = '--'; }
if (!$data02) { $data02 = '--'; }
if (!$data03) { $data03 = '--'; }
if (!$data04) { $data04 = '--'; }
if (!$data05) { $data05 = '--'; }
if (!$data06) { $data06 = '--'; }
if (!$data07) { $data07 = '--'; }
if (!$data08) { $data08 = '--'; }
if (!$data09) { $data09 = '--'; }
if (!$data10) { $data10 = '--'; }
if (!$data11) { $data11 = '--'; }
if (!$data12) { $data12 = '--'; }
if (!$data13) { $data13 = '--'; }
if (!$data14) { $data14 = '--'; }
if (!$data15) { $data15 = '--'; }
$data06 =~ s/\;/
/g;
print <<"EOT";
物件種目 |
$data0 |
販売名 |
$data02 |
所在地 |
$data07$data08 |
開発総面積 |
$data03 |
総区画数 |
$data04 |
販売区画数 |
$data05 |
各区画詳細 |
$data06 |
交 通 |
$data09 |
地 目 |
$data11 |
道路 |
$data10 |
建ぺい率 |
$data12 |
容積率 |
$data13 |
用途地域 |
$data14 |
備 考 |
$data15 |
EOT
if ($kukaku01) {
print <<"EOT";
区画図
EOT
}
if ($map01) {
print <<"EOT";
詳細はこちら
EOT
}
print <<"EOT";
EOT
}
}
&html_foot;
} # sub printResult_do1 end
################
# HTMLヘッダー #
################
sub html_head {
print "Content-type: text/html\n\n";
print <<'EOT';
浅海住建 - 物件情報・売地借地物件 -
EOT
}
################
# HTMLフッター #
################
sub html_foot {
print <<"EOT";
Copyright(C)2001
Asaumi Jyuken. All Rights Reserved. |
EOT
}
################
# メインループ #
################
&readData(*data); # include "readGetData" "readPostData"
&parseData(*data,*dataDict); # include "decodeData"
&decodeBuffer;
#if ($FORM{'do'} eq "") {
# &error('Error.','エラーが発生しました。
戻るボタンで戻りましょう');
#}
#if ($FORM{'do'} eq "search") {
&search_do1;
&printResult_do1;
#}
exit;
# end of script