########追加######## # IIS対策 if ($ENV{'SERVER_SOFTWARE'} =~ /IIS/i) { local($chdir) = $0; $chdir =~ s/[^\\]*$//; chdir($chdir); } ########追加######## #print "$ENV{'SERVER_PROTOCOL'} 200 OK\n" if($ENV{'PERLXS'}eq"PerlIS"); # 実用サイトリンク集 作成日2003/08/11 #============# # 基本設定 # #============# require './jcode.pl'; # 文字コードライブラリ取り込み $title = "オホーツクWeb ~ 実用リンクサイト"; # タイトル名 $script = "search-jitsu.pl"; # スクリプト名 $style_file = "/ow-blue.css"; # スタイルシート $backimg = "../../img/st07_bg.gif"; # 背景画像ファイル $titleimg = "../../img/ptitle-jitsu-link.gif"; # ページタイトル画像ファイル $subtitleimg = "../../img/ow-ptitle-b.gif"; # ページタイトル画像ファイル $logdir = "datafile"; # ログファイルを置くディレクトリ $home = "http://www.okhotsk.or.jp/okindex.shtml"; # 戻り先 (絶対パスなら http://から) $method = 'POST'; # methodの形式 (POST or GET) $newtime = 0; # NEWアイコンの表示日数 $p_view = 200; # 登録内容の1ページ当りの表示数 $prtnum = 4; # 内容表示時の列数 # 以下は分類(ジャンル)の指定です。変数のカギ括弧内は 0 から連番で続ける $parts[0] = "新聞社・新聞広告"; $parts[1] = "テレビ局・マスコミ"; $parts[2] = "生活情報"; $parts[3] = "観光地域気象情報"; $parts[4] = "医療"; $parts[5] = "行政情報"; # サブカテゴリ (半角スペースで区切る) $subpt[0] = "道内新聞 全国新聞 産業・工業 金融 建設・住宅 農業・水産・食品 医療・福祉・環境・健康 物流・海事 教育 印刷 スポーツ \芸\能\"; $subpt[1] = "キーテレビ局 公共放送 NTV系列局 TBS系列局 CX系列局 テレビ朝日系列局 TX系列局 独立系U局"; $subpt[2] = "冠婚葬祭 法律情報 ショッピング・通販情報 エステティック ファッション 化粧 書籍"; $subpt[3] = "観光・旅・地域 乗物 気象 地震"; $subpt[4] = "医療 健康 病院 病気 妊娠・保育 アレルギー 薬"; $subpt[5] = "国 自治体"; $bground = ""; # 壁紙(http://から記述) $bgcolor = "#FFFFFF"; # 背景色 $text = "#000000"; # 文字色 $link = "#0000FF"; # リンク色(未訪問) $vlink = "#0000FF"; # リンク色(既訪問) $alink = "#DD0000"; # リンク色(訪問中) # NEWアイコン $newgif = "./new.gif"; $new_w = '16'; #  〃 横サイズ $new_h = '7'; #  〃 縦サイズ # お薦めアイコン $recom = './recom.gif'; $rec_w = '16'; #  〃 横サイズ $rec_h = '16'; #  〃 縦サイズ #------------# # メイン処理 # #------------# &decode; if ($mode eq 'part') { &part_view; } &html_view; exit; #------------# # 初期画面 # #------------# sub html_view { &header; print "\n"; $i = 0; $j = 0; $w = 0; foreach (0 .. $#parts) { @SUB = split(/\s+/, $subpt[$_]); if (!$w) {print "";} if ($w <= 1) { print "\n"; } else { print "\n"; } $i++; $w++; if ($i > $#parts || $w == 2) { print ""; $w = 0; } } print "
\n"; print "
"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\ ▼ "; print ""; print "$parts[$_]
"; $k=0; foreach $x (@SUB) { print "[$x] \n"; $k++; } print "
 
"; exit; ####################################################################### # #- Net Cruiser - ####################################################################### } #----------------------------# # 分類(カテゴリー)を表示 # #----------------------------# sub part_view { # サブカテゴリを取得 @SUB = split(/\s+/, $subpt[$FORM{'part'}]); &header; #タイトル部分 print "\n"; print "\n\n"; print "\n"; close(IN); #著作権を表示 print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
 
\n
\n"; #見出しのリンク作成 print "\n"; print "\n"; } print ""; print "
 実用リンクへ戻る > "; if ($FORM{'subpt'} ne "") { print "$parts[$FORM{'part'}] "; print "> $SUB[$FORM{'subpt'}] \n"; } else { print "$parts[$FORM{'part'}]
\n"; print "

\n"; print "$parts[$FORM{'part'}]

"; #大分類クリック時 if ($FORM{'subpt'} eq '') { $k=0; foreach $x (@SUB) { $logfile = "$logdir\/$FORM{'part'}\.dat"; open(IN,"$logfile") || &error("ファイルが開けません。 : $logfile"); print "\n"; print "
\n\n"; print "
$x
\n"; print "\n"; $i=0; $j=0; $w=0; while ($_ = ) { local($no,$pt,$subpt,$sub,$hp,$name,$email,$pw,$msg,$dt,$ts,$rec,$axs) = split(/<>/, $_); if ($k == $subpt) { if ($FORM{'subpt'} ne "" && $FORM{'subpt'} ne "$subpt") { next; } $i++; if (!$w) {print "\n";} if ($w <= $prtnum - 1) { #結果を表示 print "\n"; print "\n"; } else { print "\n"; } $w++; if ($w == $prtnum) { print ""; $w = 0; } } } if ($i != 0 && $i < $prtnum) { foreach ($w .. $prtnum - 1){ print "\n"; } print "\n"; } $wk1 = $i / $prtnum; $wk2 = int($i / $prtnum); if ($i > $prtnum && ($wk1 - $wk2) != 0) { print"\n"; } if ($i == 0) { print "\n"; } print "
$sub"; # アイコンを表示 $times = time; &icons; print "  
  
※現在登録されていません。
"; print "
top▲
\n"; $k++; } } #中分類クリック時 else { $logfile = "$logdir\/$FORM{'part'}\.dat"; open(IN,"$logfile") || &error("ファイルが開けません。 : $logfile"); print "\n"; print "
\n"; print "\n"; print "\n"; print "
$SUB[$FORM{'subpt'}]
\n"; print "\n"; $i=0; $j=0; $w=0; while ($_ = ) { local($no,$pt,$subpt,$sub,$hp,$name,$email,$pw,$msg,$dt,$ts,$rec,$axs) = split(/<>/, $_); if ($FORM{'subpt'} ne "" && $FORM{'subpt'} ne "$subpt") { next; } $i++; if (!$w) {print "\n";} if ($w <= $prtnum - 1) { #結果を表示 print "\n"; print "\n"; } else { print "\n"; } $w++; if ($w == $prtnum) { print "\n"; $w = 0; } } if ($i != 0 && $i < $prtnum) { foreach ($w .. $prtnum - 1){ print "\n"; } print "\n"; } $wk1 = $i / $prtnum; $wk2 = int($i / $prtnum); if ($i > $prtnum && ($wk1 - $wk2) != 0) { print"\n"; } if ($i == 0) { print "\n"; } print "
$sub"; # アイコンを表示 $times = time; &icons; print "  
  
※現在登録されていません。
"; print "
top▲
\n"; } print "※ご覧になりたい項目をクリックすると別画面で表\示されます。
"; print "
"; print "Copyright © 2003 System Supply Co.,Ltd All Rights Reserved.
\n"; # 改頁処理 #if ($page eq '') { $page = 1; } #$next_line = $page + $p_view; #$back_line = $page - $p_view; #print "\n"; # 前頁処理 #if ($back_line > 0) { # print "\n"; #} # 次頁処理 #if ($next_line <= $i) { # print "\n"; #} print "
\n"; # print "\n"; # print "\n"; # print "\n"; # print "\n"; # print "\n"; # print "
\n"; # print "\n"; # print "\n"; # print "\n"; # print "\n"; # print "\n"; # print "
\n\n\n"; exit; } #----------------# # デコード処理 # #----------------# sub decode { if ($ENV{'REQUEST_METHOD'} eq "POST") { if ($ENV{'CONTENT_LENGTH'} > 51200) { &error("投稿量が大きすぎます"); } read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # 文字コード変換 &jcode'convert(*value,'sjis'); # タグ処理 $value =~ s/\"/"/g; $value =~ s//>/g; # 改行処理 if ($name eq "msg") { $value =~ s/\r\n/
/g; $value =~ s/\r/
/g; $value =~ s/\n/
/g; } else { $value =~ s/\r//g; $value =~ s/\n//g; } # 削除/推奨マーク処理 if ($name eq 'del') { push(@delete,$value); } elsif ($name eq 'rec') { push(@recs,$value); } $FORM{$name} = $value; } $mode = $FORM{'mode'}; $page = $FORM{'page'}; } #----------------# # HTMLのヘッダ # #----------------# sub header { print "Content-type: text/html\n\n"; print <<"EOM"; $title
EOM } #--------------# # エラー処理 # #--------------# sub error { if ($_[1] eq "lock" && -e $lockfile) { unlink($lockfile); } &header; print "

ERROR !

\n"; print "

$_[0]\n"; print "


\n"; print "\n"; exit; } #----------------------------# # アイコンの定義および表示 # #----------------------------# sub icons { if ($_[0] eq 'rank') { if ($times - $ts{$_} < $newtime*24*60*60) { print " "; } if ($rec{$_} == 1) { print " "; } } else { if ($times - $ts < $newtime*24*60*60) { print " "; } if ($rec == 1) { print " "; } } } #--------------# # 時間の取得 # #--------------# sub get_time { $ENV{'TZ'} = "JST-9"; # タイムゾーンを日本時間へ $times = time; ($sec,$min,$hour,$mday,$mon,$year,$wday,$dmy,$dmy) = localtime($times); @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); # 日時のフォーマット $date = sprintf("%04d\/%02d\/%02d(%s) %02d\:%02d", $year+1900,$mon+1,$mday,$week[$wday],$hour,$min); }