#!/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";
物件番号 $bu_no 更新日 $data01
物件種目 $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