#!/usr/bin/perl #◇◇ perlのパスを自分の環境に合わせて書き直します。 #◇◇ 解らない場合はサーバー管理者(もしくはプロバイダー)に #◇◇ 確認してください。 #↑perlのパスを自分の環境に合わせて書き直します。 #大抵は、「#!/usr/bin/perl」 か 「#!/usr/local/bin/perl」です。 #解らない場合はサーバー管理者(もしくはプロバイダー)に #確認してください。 require './jcode.pl'; $ver = '1.03'; ##################################################################### # Simple-Links Ver1.03 [簡易リンク集管理ソフト] (1999/11/18) # (C) 1999 by yomi # Eメール: yomi@pekori.to # ホームページ: http://yomi.pekori.to/ ##################################################################### ## ---[注意事項]------------------------------------------------------------+ ## 1. このスクリプトはフリーソフトです。このスクリプトを使用したいかなる損害に ## 対して作者は一切の責任を負いません。 ## 2. このスクリプトを使用した時点で利用規約(http://yomi.pekori.to/kiyaku.html) ## に同意したものとみなさせていただきます。 ## ご使用になる前に必ずお読みください。 ## -------------------------------------------------------------------------+ #------------------↓ここから設定↓---------------------# #管理パスワード $pwd = 'link0312'; #リンク集のタイトル $link_title = 'りんくす'; #スクリプト名 $script = 'links.cgi'; #戻り先URL $home = 'http://siba-eternal.com/'; #ログファイル #保存形式 #登録NO.<>タイトル<>管理人<>URL<>バナーURL<>バナー横幅<>バナー縦幅<>コメント<>\n $link_log = 'links.log'; #1ページ当たりの表示件数 $new_url_no = '100'; #タイトルロゴ画像(使用するときのみ記入) $titlegif = ''; # 〃 画像のURL又はパスを記入してください。 $title_w = '200'; # 〃 横サイズ $title_h = '100'; # 〃 縦サイズ #タイトル文字 $title_word = 'リンク集!'; #壁紙URL(使用するときのみ) $backgif = ""; #背景の色 $backcolor = "#E1F0F0"; #テキストの色 $text_co = "#0066FF"; #リンクの色 $plink_co = "#0066FF"; #訪問前リンクの色(LINK) $alink_co = "#000066"; #訪問中リンクの色(ALINK) $vlink_co = "#009966"; #訪問後リンクの色(VLINK) #文字の大きさ $bpt = "11"; #------------------↑ここまで設定↑---------------------# if ($backgif ne "" && $backcolor ne "") { $back_env = " background=\"$backgif\" bgcolor=\"$backcolor\""; } elsif ($backgif) { $back_env = " background=\"$backgif\""; } elsif ($backcolor) { $back_env = " bgcolor=\"$backcolor\""; } else { $back_env = ""; } $lock_file = 'links.loc'; # 日時の取得 $ENV{'TZ'} = "JST-9"; $times = time(); $times_now = time(); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($times); $year = 1900 + $year; $mon++; if ($mon < 10) { $mon = "0$mon"; } if ($mday < 10) { $mday = "0$mday"; } if ($hour < 10) { $hour = "0$hour"; } if ($min < 10) { $min = "0$min"; } # 日時のフォーマット $youbi = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; $date_now = "$year/$mon/$mday($youbi)"; $date2 = "$year/$mon/$mday"; $now_mon = "$year" . "_" . "$mon" . ".dat"; # #メインメニュー # &form_decode; if ($mode eq 'regist') { ®ist; } elsif ($mode eq 'regist_act') { ®ist_act; } elsif ($mode eq 'mente') { &mente; } elsif ($mode eq 'mente_act') { &mente_act; } elsif ($mode eq 'del_act') { &del_act; } &index_html; exit; #初期画面 sub index_html{ open(IN,"$link_log"); @lines = ; close(IN); if ($FORM{'p'} eq 'new') { @lines = reverse(@lines); } #画面表示 $total = @lines; print "Content-type: text/html\n\n"; print <<"EOM"; $link_title
EOM print "

[トップに戻る] 

"; if ($titlegif) { print "\"タイトルロゴ\"\n"; } elsif ($title_word) { print "
$title_word
\n"; } print <<"EOM";
EOM #表示数の処理 30件>135件中 $FORM{'page'}=$page if ($total > 0 && $new_url_no > 0) { $page_su = $total / $new_url_no; $page_su = int($page_su) + 1; if ($FORM{'page'} == "") { $page = 1; $start_no = 1; $end_no = $new_url_no; } else { $page = $FORM{'page'}; $start_no = ($new_url_no * ($page - 1)) + 1; $end_no = $new_url_no * $page; } } if ($total > $new_url_no) { print "[/"; foreach (1 .. $page_su) { #[/ 1 / 2 / 3 / 4 /] if ($_ == $page) { print " $_ /"; } else { if ($FORM{'p'} eq 'new') { print " $_ /"; } else{ print " $_ /"; } } } print "]"; print "
\n"; } print "
"; print "["; if ($FORM{'q'} eq 'nobanner') { if($FORM{'p'} eq 'title'){ print ""; } else { print ""; } print "バナーを表\示]"; } else { if($FORM{'p'} eq 'title'){ print ""; } else { print ""; } print "バナーを消去]"; } print " ["; if ($FORM{'p'} ne 'title') { if($FORM{'q'} eq 'nobanner'){ print ""; } else { print ""; } print "リンクページ一覧を表\示]"; } else { if($FORM{'q'} eq 'nobanner'){ print ""; } else { print ""; } print "リンクページ一覧を消去]"; } print "
"; if ($FORM{'p'} eq 'title') { $t = 0; foreach $var (@lines) { @list = split(/<>/, $var); $title[$t] = $list[1]; $t++; } @titlelist = sort(@title); print "
★↓登録されているサイトの一覧です↓★
"; foreach $val (@titlelist) { print "$val";} } print "
"; print "
タイトル管理人解説 \n"; $xx99 = 0; $jj99 = 0; foreach (@lines) { $xx99++; if ($start_no <= $xx99 && $end_no >= $xx99) { ##開始NO→$start_no 終了NO→$end_no $jj99++; ($no_y,$title_y,$caretaker_y,$url_y,$burl_y,$bwidth_y,$bheight_y,$mes_y) = split(/<>/,$_); if ($FORM{'q'} eq 'nobanner') { print "
$title_y$caretaker_yさん$mes_y"; } else{ print "
"; if ($burl_y eq "") { $burl_y = "nobanner.gif"; $bwidth_y = 100; $bheight_y = 25; } print "\"$title_y\"
$title_y
$caretaker_yさん$mes_y"; } ## } } print "

"; if ($total > $new_url_no) { print "[/"; foreach (1 .. $page_su) { #[/ 1 / 2 / 3 / 4 /] if ($_ == $page) { print " $_ /"; } else { if ($FORM{'p'} eq 'new') { print " $_ /"; } else{ print " $_ /"; } } } print "]"; print "

\n"; } print "\n"; print "\n"; print <<"EOM"; EOM print ""; &foot; exit; } #ロックルーチン sub lock { $flag = 0; # 10分以上古いロックファイルは削除する。 ($mtime) = (stat($file_lock))[9]; if ($mtime < time() - 600) { unlink $lock_file; } $retry = 6; $zz = 0; $flag = 0; while (-e $lock_file) { if ($retry == $zz) { #タイムアウトで抜けたとき($flag=1) $flag = 1; last; } $zz++; sleep 1; } if ($flag == 0) { open(OUT,">$file_lock"); close(OUT); } } #ロック解除ルーチン sub unlock { unlink $lock_file; } sub form_decode { if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $form, $ENV{'CONTENT_LENGTH'}); } else { $form = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$form); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'sjis'); &jcode'convert(*name,'sjis'); $FORM{$name} = $value; } $mode = $FORM{'mode'}; } #著作権表示(削除・変更しないでください) sub foot { print "

-Simple-Links sibacustom-

"; } #エラー処理 sub error { print "Content-type: text/html\n\n"; print "\n"; print "


\n"; print "

\n"; print "
ホーム
$miss\n"; print "
"; print "\n"; exit; }