#!/usr/local/bin/perl #┌───────────────────────────────── #│ Web Calen v1.5 (2002/08/14) #│ Copyright(C) Kent Web 2002 #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── $ver = 'Web Calen v1.5'; #┌───────────────────────────────── #│ [注意事項] #│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した #│ いかなる損害に対して作者は一切の責任を負いません。 #│ 2. 設置に関する質問はサポート掲示板にお願いいたします。 #│ 直接メールによる質問は一切お受けいたしておりません。 #│ 3. 同梱のアイコンは以下のサイトに著作権があります。 #│ (heart.cgi除く) #│ ・牛飼いとアイコンの部屋 http://www.ushikai.com/ #└───────────────────────────────── #┌───────────────────────────────── #│ [使用方法] #│ 1. 書き込む場合には、「日付」をクリック → パスワード入力 #│ とすることで投稿フォームが現れます。 #│ 2. 書き込みが完了するとその「日付」に「PEN」アイコンが表示され #│ ます。「PEN」アイコンをクリックするとその書き込み内容が表示 #│ されます。 #│ 3. 書き込み内容を修正、削除する場合には、その「日付」をクリック #│ をクリックすると「修正」「削除」のセレクトボックスが表示され #│ ますので、そこでパスワードを入力し処理します。 #│ 4. カレンダを前月、翌月に移動するには、「BACK」「NEXT」アイコン #│ をクリックします。 #│ 5. 右フレームの管理用をクリックし、からパスワードを入力して入室 #│ すると、全ログファイルの容量を閲覧することができ、月次単位で #│ ログを一括削除することが可能です。 #│ 6. チェックモードの起動方法: ?mode=check という引数を付ける #│ 例: http://www.***.co.jp/cgi-bin/calen/calen.cgi?mode=check #└───────────────────────────────── # # [ 設置例 ] # ***.co.jp / index.html # | # +----- cgi-bin # | # +-- calen /calen.cgi # | jcode.pl # | # +-- img / *.gif # #============# # 設定項目 # #============# #【重要】●の箇所のパスを変更してください。(例、***.co.jpの場合) # ***.com であれば、***_com となります。 # ●文字コードライブラリ取込 require 'D:\\users\\kk-planet_com\\cgi-bin\\calen\\jcode.pl'; # タイトル $title = "お稽古カレンダー"; # タイトルの文字色 $t_color = "#880000"; # タイトルの大きさ(スタイルシートで有効) $t_size = '18pt'; # 管理パスワード(英数字で8文字以内) $pass = '3527'; # 戻り先(カレンダーからの戻りページをhttp://から指定) $home = "http://www.kk-planet.com/kimono/"; # スクリプト名 $script = "calen.cgi"; # ●ログファイルディレクトリ $logdir = "D:\\users\\kk-planet_com\\cgi-bin\\calen1\\"; # ●画像ディレクトリ (http://から記述 最後は必ず / で閉じる) $imgurl = "http://www.kk-planet.com/cgi-bin/calen1/img/"; # 本文文字の大きさ(スタイルシートで有効) $body_size = '10pt'; # 本文文字のフォント(スタイルシートで有効) $body_face = 'MS UI Gothic'; # 題名の色 $sub_color = "#8000C0"; # カレンダの下地色 $tbl_color = "white"; # 本日の色 $today_color = "pink"; # 土曜日の色 $sat_color = "blue"; # 日曜日の色 $sun_color = "red"; # 祝日/振替休日の色 $spe_color = "#F20DA2"; # 平日の色 $nor_color = "black"; # カレンダの枠の色 $tbl_line = "#A57D6B"; # カレンダ表示1マスのサイズ $width = 38; # 横幅 $height = 38; # 縦幅 # 新着情報の表示件数 # → 0 とすると表示そのものを止め、右フレームには「使い方」の # ページが初期表示されます $infoview = 5; # 月内メッセージ一括表示の順番(「一括」ボタン押下時) # 0 : 古い順 # 1 : 新着順 $all_view = 0; # コントルールパネル(カレンダ下部)での西暦選択の幅 # 1 : 前後1年 # 2 : 前後2年 $ctr_year = 1; # カレンダ部・左右キーのタイプ # 0 : アイコン使用 # 1 : フォームボタン $lar_type = 0; # 左右アイコン(上記設定でアイコンを選択する場合) $IconR = "next.gif"; $IconL = "back.gif"; $IRL_W = 80; # 横幅 $IRL_H = 20; # 縦幅 # 書き込み案内アイコン @wri = ('ng.gif', 'yasumi.gif', 'pen.gif', 'lamp.gif','tehutehu.gif'); # bodyタグ指定 $bg = "http://www.kk-planet.com/image/kimonokabe.jpg"; # 壁紙 (http://からファイルを指定する) $bc = "#FBEDD5"; # 背景色 $tx = "#000000"; # 文字色 $lk = "#0000FF"; # リンク色(未訪問) $vl = "#800080"; # リンク色(訪問済) $al = "#FF0000"; # リンク色(訪問中) # 週表示 @week = ('日','月','火','水','木','金','土'); # 任意アイコン(上段:ファイル名,下段:アイコン名) # → 上下は必ずペアで指定 @icon1 = ('hare.gif','kumori.gif','ame.gif','yuki.gif','acchi.gif','kocchi.gif','kouji.gif','mail.gif','puri.gif','puri2.gif','box.gif','akubi.gif','panda.gif',); @icon2 = ('晴れ','くもり','雨','雪','あっち','こっち','工事中','メール','ぷりぷり1','ぷりぷり2','たまげ〜','あくび','これパンだ'); #----------------------- これより処理開始 -----------------------# #この行以下を書き換えられた場合、サポートの対象外となりますのでご注意下さい# # 祝日1:特定月日(2桁+2桁で記述) @SpeDay = ('0101','0211','0321','0429','0503','0504','0505', '0720','0919','0923','1103','1123','1223'); # 祝日2:何月の第何月曜日か? # → 成人の日 / 体育の日 %SpeDay = ('1','2', '10','2'); #============# # 設定完了 # #============# &decode; if ($mode eq "write") { &write; } elsif ($mode eq "admin") { &admin; } elsif ($mode eq "calen") { &calen; } elsif ($mode eq "main") { &main; } elsif ($mode eq "howto") { &howto; } elsif ($mode eq "check") { ✓ } &frame; #----------------# # フレーム処理 # #----------------# sub frame { print "Content-type: text/html\n\n"; print <<"EOM"; $title EOM exit; } #--------------------# # メイン部表示処理 # #--------------------# sub main { local($newlog,$wkey,$Y,$M,$D,$Day,$sub,$msg,$icon,$wri,$ymd,$w,@data); &header; print <<"EOM";
$title

[ホームに戻る] [利用方法] [管理用]

EOM # 新着ログを定義 $newlog = $logdir . 'new.dat'; # ログ表示指定初期表示 if ($in{'action'} eq "view") { if ($in{'year'}) { $year = $in{'year'}; } if ($in{'mon'}) { $month = $in{'mon'}; } elsif ($in{'action'} eq "view") { ($Day,$sub,$msg,$icon,$wri,$Y) = &view; $month = $M; $year = $Y; } print "", "
\n", "", "\n", "
", "  ", "$sub
\n", "$Y年$M月$D日 ($week[$in{'w'}])\n

\n"; # アイコン表示の場合 if ($icon ne "") { print "\"$icon\"\n"; } $msg = &tagview($msg); print "$msg

\n"; # 月内一括表示 } elsif ($in{'action'} eq "allview") { $in{'YM'} =~ s/\D//g; if ($in{'YM'} =~ /^(\d\d\d\d)(\d\d)$/) { $Y=$1; $M=$2; } else { &error("年月の指定が不正です"); } # ログを定義 $logfile = "$logdir$in{'YM'}\.txt"; # ログの存在をチェック unless (-e $logfile) { print "この月には書き込みがありません\n", "\n"; exit; } @data=(); open(IN,"$logfile") || &error("Open Error : $logfile"); while () { ($Day,$sub) = split(/<>/); next if ($sub eq ""); s/\n//g; if ($all_view) { unshift(@data,$_); } else { push(@data,$_); } } close(IN); print "▼ $Y年$M月\n

\n

\n"; foreach (@data) { ($Day,$sub,$msg,$icon,$wri) = split(/<>/); # 曜日を取得 $wkey = &getweek($Day, $Y, $M); print "", "
\n", "", "\n", "
", "  ", "$sub
", "$M/$Day ($week[$wkey])

\n"; if ($icon ne "") { print "\"$icon\" "; } $msg = &tagview($msg); print "$msg

\n

\n"; } # 新着情報 } elsif ($infoview > 0 && -e $newlog) { print "", "
\n", "\n", "\n", "
", "新着情報
\n"; $i=0; open(IN,"$newlog") || &error("Open Error : $newlog"); while () { $i++; ($ymd,$sub,$msg,$w) = split(/<>/); if ($ymd =~ /^(\d\d\d\d)(\d\d)(\d\d)/) { $md = "$2/$3"; } print "$md - $sub
\n"; if ($infoview <= $i) { last; } } close(IN); print "
\n"; } else { &howto('DMY'); } # 著作権表示(削除改変禁止) print "

\n", "- WebCalen -\n", "\n\n"; exit; } #----------------# # カレンダ表示 # #----------------# sub calen { if ($in{'year'}) { $year = $in{'year'}; } if ($in{'mon'}) { $month = $in{'mon'}; } else { $month = $mon; } local($year2) = $year; &header; print "

\n"; # &table("FWD", "$month"); &table("", "$month"); $pre = $month - 1; $Y1 = $year; if ($pre < 1) { $pre += 12; $Y1 = $year - 1; } $next = $month + 1; $Y2 = $year; if ($next > 12) { $next -= 12; $Y2 = $year + 1; } ## コントロールキー表示 # アイコンの場合 if (!$lar_type) { print "", "\"Back\"\n", "", "\"Next\"\n"; # フォームボタン } else { print "\n", "\n", "
\n", "
\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "
\n"; } if ($ctr_year == 1) { @ctr = ($year2-1, $year2, $year2+1); } else { @ctr = ($year2-2, $year2-1, $year2, $year2+1, $year2+2); } # 直接移動ボタン print "

\n"; print "\n"; print "
\n"; print "
\n"; print "\n"; print "\n\n
\n"; print "\n"; print "\n"; print "\n"; $month2 = sprintf("%02d", $month); print "\n"; print "

\n\n\n"; exit; } #----------------# # カレンダ表示 # #----------------# sub table { local($month) = $_[1]; if ($_[0] eq "FWD") { $month--; if ($month < 1) { $month += 12; $year--; } } if ($month == $mon && $thisyear == $year) { $thiskey=1; } $lmon = sprintf("%02d", $month); open(IN,"$logdir$year$lmon\.txt"); @lines = ; close(IN); print "", "
\n", "", "", "\n"; foreach (0 .. 6) { if ($_ == 0) { $color = $sun_color; } elsif ($_ == 6) { $color = $sat_color; } else { $color = $nor_color; } print ""; } print "\n"; # 複雑怪奇なる「ツェラーの公式」を実行し曜日を取得計算 $wkey = &getweek("1","$year","$month"); $lastday = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) [$month - 1] + ($month == 2 && (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0)); $i=0; # 曜日 (ex. 0:日曜, 1:月曜, ... ) $j=1; # 月曜の第何週か $k=1; # 日 $flag=0; $spe_flag=0; # 振替休日フラグ foreach (1 .. 42) { # 色指定 if ($i == 0) { $color = $sun_color; } elsif ($i == 6) { $color = $sat_color; } else { $color = $nor_color; } if ($wkey == $i) { $flag=1; } if ($lastday < $k) { $flag=2; } if ($flag == 2 && $i == 0) { last; } if ($i == 0) { print ""; } if (!$flag) { print ""; } elsif ($flag == 2) { print ""; } else { if ($thiskey && $mday == $k) { print ""; } if ($flag && $i == 1) { $j++; } $i++; if ($flag) { $k++; } if ($i == 7) { print "\n"; $i=0; } } print "
$year年 $month月
$week[$_]
- - "; } else { print ""; } $lday = sprintf("%02d", $k); $this = $lmon . $lday; # 振替休日 if ($spe_flag) { $spe_flag=0; $color = $spe_color; } else { # 祝日1 foreach $x (@SpeDay) { if ($x eq $this) { if ($i == 0) { $spe_flag=1; } $color = $spe_color; last; } } # 祝日2 while (($N, $V) = each(%SpeDay)) { if ($month == $N && $i == 1 && $j == $V) { $color = $spe_color; last; } } } print ""; print "$k
\n"; ($Day,$sub,$msg,$ico,$wri) = split(/<>/, $lines[$k-1]); if ($sub ne "") { print ""; } # else { $DAY = $k; } print "

\n"; } #--------------------# # 日記ログ読み出し # #--------------------# sub view { local($Day,$sub,$msg,$ico,$wri); if ($in{'YMD'} =~ /^(\d\d\d\d)(\d\d)(\d\d)$/) { $Y=$1; $M=$2; $D=$3; } else { &error("年月日の数値が不正です"); } $logfile = "$logdir$Y$M\.txt"; open(IN,"$logfile") || &error("Open Error : $logfile"); while () { chop; ($Day,$sub,$msg,$ico,$wri) = split(/<>/); if ($Day == $D) { last; } } close(IN); return ($Day,$sub,$msg,$ico,$wri,$Y); } #--------------# # 書込み画面 # #--------------# sub write { if ($in{'YMD'} =~ /^(\d\d\d\d)(\d\d)(\d\d)$/) { $Y=$1; $M=$2; $D=$3; } else { &error("年月日の数値が不正です"); } # パスワードチェック if ($in{'pass'} eq "") { $flag=0; open(IN,"$logdir$Y$M\.txt"); while () { local($day,$sub,$msg) = split(/<>/); if ($D == $day && $sub ne "") { $flag=1; last; } } close(IN); &header; print "[前画面に戻る]
\n", "
処理対象 : $Y年$M月$D日
\n", "

- パスワードを入力してください -\n", "

\n", "\n", "\n", "\n"; if ($flag) { print "\n"; } print "\n"; print "
\n"; print "
\n\n\n"; exit; } elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); } # 書き込み処理 if ($in{'action'} eq "regist") { $flag=0; if ($in{'sub'} eq "") { &error("題名が入力されていません"); } if ($in{'message'} eq "") { &error("コメントが入力されていません"); } if ($in{'wrap'} ne "on") { $in{'message'} =~ s/
//ig; } # ログファイルを定義 $logfile = "$logdir$Y$M\.txt"; # ログが存在するとき if (-e $logfile) { @new=(); open(IN,"$logfile") || &error("Open Error : $logfile"); while () { ($Day,$sub,$msg,$icon,$wri) = split(/<>/); if ($D == $Day) { $_="$Day<>$in{'sub'}<>$in{'message'}<>$in{'icon'}<>$in{'wri'}<>\n"; } push(@new,$_); } close(IN); } # ログが存在しないとき else { $flag=1; @new=(); foreach (1 .. 31) { $_ = sprintf("%02d", $_); if ($D eq $_) { $log = "$_<>$in{'sub'}<>$in{'message'}<>$in{'icon'}<>$in{'wri'}<>\n"; } else { $log = "$_<><><><><>\n"; } push(@new,$log); } } open(OUT,">$logfile") || &error("Write Error : $logfile"); print OUT @new; close(OUT); # 新規ログのパーミッションを666へ if ($flag) { chmod(0666,$logfile); } # 新着ログ更新処理 if ($infoview > 0) { $newlog = $logdir . 'new.dat'; unless (-e $newlog) { $new_flag=1; $new2[0] = "$in{'YMD'}<>$in{'sub'}<>$in{'message'}<>$in{'w'}<>$in{'icon'}<>\n"; } else { open(IN,"$newlog") || &error("Open Error : $newlog"); @lines = ; close(IN); @new2=(); $flag2=0; foreach (@lines) { ($ymd,$sub,$msg,$w,$icon) = split(/<>/); if ($in{'YMD'} == $ymd) { $flag2=1; $_ = "$ymd<>$in{'sub'}<>$in{'message'}<>$w<>$in{'icon'}<>\n"; } elsif (!$flag2 && $in{'YMD'} > $ymd) { $flag2=1; push(@new2,"$in{'YMD'}<>$in{'sub'}<>$in{'message'}<>$in{'w'}<>$in{'icon'}<>\n"); } push(@new2,$_); } if (!$flag2) { push(@new2,"$in{'YMD'}<>$in{'sub'}<>$in{'message'}<>$in{'w'}<>$in{'icon'}<>\n"); } } # 更新 while ($infoview < @new2) { pop(@new2); } open(OUT,">$newlog") || &error("Write Error : $newlog"); print OUT @new2; close(OUT); # 新規ログのパーミッションを666へ if ($new_flag) { chmod(0666,$newlog); } } # 完了メッセージ &header; print "

正常に書き込みを受理しました

\n"; print "
\n"; print "日付: $Y年$M月$D日
\n"; print "題名: $in{'sub'}

\n"; if ($in{'icon'} ne "") { print "\"$in{'icon'}\"\n"; } print "$in{'message'}\n
\n

\n"; print "

\n"; print "
\n"; print "
\n\n\n"; exit; } # ログ削除 elsif ($in{'action'} eq "del") { $logfile = "$logdir$Y$M\.txt"; @new=(); open(IN,"$logfile") || &error("Open Error : $logfile"); while () { local($day,$sub,$msg,$icon) = split(/<>/); if ($D eq $day) { $_="$day<><><><><>\n"; } push(@new,$_); } close(IN); open(OUT,">$logfile") || &error("Write Error : $logfile"); print OUT @new; close(OUT); # 新着ログ if ($infoview > 0) { $newlog = $logdir . 'new.dat'; open(IN,"$newlog") || &error("Open Error : $newlog"); $flag=0; @new=(); while () { local($ymd,$sub,$msg,$icon) = split(/<>/); if ($in{'YMD'} == $ymd) { $flag=1; next; } push(@new,$_); } close(IN); # 該当ログのある場合は新着ログ更新 if ($flag) { open(OUT,">$newlog") || &error("Write Error : $newlog"); print OUT @new; close(OUT); } } # 完了メッセージ &header; print "

削除処理が完了しました

\n"; print "
\n"; print "
\n"; print "
\n\n\n"; exit; } # ログ修正の場合 elsif ($in{'action'} eq "edit") { local($flag)=0; open(IN,"$logdir$Y$M\.txt") || &error("Open Error : $logdir$Y$M\.txt"); while () { chop; ($day,$sub,$msg,$icon,$wri) = split(/<>/); if ($day == $D) { $flag=1; last; } } close(IN); if (!$flag) { &error("該当の記事が見つかりません"); } $msg =~ s/
/\r/g; } &header; print <<"EOM"; [前画面に戻る]

書込みフォーム

  • HTMLタグの使用は可能\です。
  • タグを使用する場合には「改行は有効」のチェックを外したほうが無難です。
  • 半角カナは使用しないで下さい。
  • 年月日$Y年$M月$D日
    タイトル
    カレンダ表\示 EOM # カレンダアイコン if ($wri eq "") { $wri = 0; } foreach (0 .. $#wri) { if ($wri == $_) { print "", "\n"; } else { print "", "\n"; } } # 本文アイコン print "
    本文アイコン
    コメント:    改行は有効

    EOM exit; } #--------------# # 管理者画面 # #--------------# sub admin { if ($in{'pass'} eq "") { &header; print "

    パスワードを入力してください

    \n"; print "
    \n"; print "\n"; print ""; print "
    \n"; print "
    \n\n\n"; exit; } elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); } if ($in{'del'}) { @del = split(/\0/, $in{'del'}); if ($infoview > 0) { $newlog = $logdir . 'new.dat'; open(IN,"$newlog") || &error("Open Error : $newlog"); @lines = ; close(IN); } &header; print "
    \n"; foreach (@del) { if (unlink ("$logdir$_")) { print "削除完了 : $_
    \n"; } else { print "削除できません : $_
    \n"; } # 新着ログチェック if ($infoview > 0) { $flag=0; $_ =~ s/^(\d+)/$key1 = $1/e; foreach (@lines) { ($ymd,$sub,$msg) = split(/<>/); $ymd =~ s/^(\d\d\d\d\d\d)(\d\d)/$key2 = $1/e; if ($key1 == $key2) { $flag=1; next; } push(@new,$_); } } } # 該当ログのある場合は新着ログ更新 if ($flag) { open(OUT,">$newlog") || &error("Write Error : $newlog"); print OUT @new; close(OUT); } print "
    \n"; print "
    \n"; print "
    \n\n\n"; exit; } else { opendir(DIR,"$logdir") || &error("OpenDir Error : $logdir"); @data = readdir(DIR); closedir(DIR); } &header; print <<"EOM"; [戻る]
    管理モード

    - チェックを入れて「削除する」を押すと月次ファイル全体を削除します -

    EOM $all=0; $size=0; foreach (@data) { if ($_ =~ /^(\d\d\d\d)(\d\d)\.txt$/) { # ファイルサイズ $size = -s "$logdir$_"; print ""; print "\n"; $all += $size; } } print "
    削除年月容量
    $1年$2月$size Bytes

    \n"; print "

    ログサイズ計:$all Bytes\n"; print "

    \n\n\n"; exit; } #----------------# # 利用方法表示 # #----------------# sub howto { if ($_[0] eq "") { &header; } print <<"EOM";
    使い方
    • 初期画面では当月のカレンダが表\示されます。

    • 「BACK」「NEXT」のボタンを押すとそれぞれ前月・翌月のカレンダが現れます。

    • 書き込み内容のある日にはアイコンが表\示されますので、このアイコンをクリックすると内容を読むことができます。

    • 下部にあるフォームボタンにて、「年月」を選択して「移動」を押すと、直接その年月のカレンダへ移動することができます。また「一括」を押すとこの年月の書き込み内容をすべて表\示します。
    EOM if ($_[0] eq "") { print "

    \n"; print "
    \n\n\n"; exit; } } #----------------# # デコード処理 # #----------------# sub decode { local($buf, $key, $val); if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); } else { $buf = $ENV{'QUERY_STRING'}; } foreach (split(/&/, $buf)) { ($key, $val) = split(/=/); $val =~ tr/+/ /; $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # シフトJISコード変換 &jcode'convert(*val, "sjis", "", "z"); # 禁止記号 $val =~ s/&/&/g; $val =~ s/"/"/g; $val =~ s//>/g; # 改行処理 if ($key eq "message") { $val =~ s/\r\n/
    /g; $val =~ s/\n/
    /g; $val =~ s/\r/
    /g; } else { $val =~ s/\r//g; $val =~ s/\n//g; } $in{$key} .= "\0" if (defined($in{$key})); $in{$key} .= $val; } $mode = $in{'mode'}; $in{'YMD'} =~ s/\D//g; $in{'YM'} =~ s/\D//g; # 日時の取得 $ENV{'TZ'} = "JST-9"; ($mday,$mon,$year) = (localtime(time))[3..5]; $year += 1900; $mon++; $thisyear = $year; } #--------------# # HTMLヘッダ # #--------------# sub header { $headflag=1; print "Content-type: text/html\n\n"; print <<"EOM"; $title EOM if ($bg) { print "\n"; } else { print "\n"; } } #--------------# # エラー処理 # #--------------# sub error { &header if (!$headflag); print "

    ERROR !

    \n"; print "$_[0]\n"; print "
    \n\n\n"; exit; } #-------------------------------# # ツェラーの公式(曜日の取得) # #-------------------------------# sub getweek { local($day, $year, $month) = @_; # $year = 年; # 4桁 # $month = 月; # 1-12 --> 1月は1 if ($month == 1 || $month == 2) { $year--; $month += 12; } int ($year + int ($year/4) - int ($year/100) + int ($year/400) + int ((13*$month+8)/5) + $day) % 7; } #------------# # タグ復元 # #------------# sub tagview { local($_) = @_; s/<//g; s/"/"/g; s/&/&/g; $_; } #------------------# # チェックモード # #------------------# sub check { &header; print "

    Check Mode

    \n
      \n"; if (-d $logdir) { print "
    • ログディレクトリのパス:OK\n"; if (-r $logdir && -w $logdir && -x $logdir) { print "
    • ログディレクトリのパーミッション:OK\n"; } else { print "
    • ログディレクトリのパーミッション:NG → $logdir\n"; } } else { print "
    • ログディレクトリのパス:NG → $logdir\n"; } print "
    \n

    $ver
    \n"; print "Copyright (C) Kent Web 2002\n"; print "\n\n"; exit; } __END__