%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/rappan/www/_cgi_cnt/
Upload File :
Create Path :
Current File : //home/rappan/www/_cgi_cnt/param.cgi

#================================================================
# らくらく日計カウンタv1.0 設定データ&ライブラリ (2002/11/23)
# Copyright(C) 2002 Mura's…
# http://www1.harenet.ne.jp/~a-mura/
#================================================================

$newfile = 1;                  #-- ファイル自動生成(一度カウンタ表示後は外部からの不正使用防止の為0にするのをお勧めします)
#---------------------------------------------------------------------------------------------
$imgbase = './gif/';           #-- イメージファイルを格納するディレクトリパス(必ず最後を / でくくること)
$basepath = './dat/';          #-- 各種設定ファイルベースパス
$lockdir = './lock_dir/';      #-- ロックディレクトリ
$retry = 5;                    #-- ファイルロックリトライ回数
$delete = 7;                   #-- 一度に削除する過去ログファイルの日数

$password = '0000';            #-- パスワード(初期値)
$termflg = 1;                  #-- カウント条件(IPチェック無し:0  IP/時間チェック有り:1)
$termtime = 30;                #-- カウント条件の時間(分)
$totalfigure = 5;              #-- トータル桁数
$todayfigure = 3;              #-- 本日の桁数
$ydayfigure = 3;               #-- 昨日の桁数

$totalimg = $imgbase.'image1/';#-- 画像ファイルトータルパス
$todayimg = $imgbase.'image1/';#-- 画像ファイル本日パス
$ydayimg = $imgbase.'image1/'; #-- 画像ファイル昨日パス


#==========================#
#   設定ファイル読み込み
#==========================#
sub readSetup {
    my($path) = "$basepath$_[0]set\.cgi";
    if((-e $path)){
        open(FILE, "< $path") or return '';
        my(@data) = <FILE>;
        close(FILE);
        if($data[0] eq ''){return '';}
        foreach(@data){$_ =~ s/\r//; $_ =~ s/\n//;}
        for(my($i)=1; $i<=5; $i++){
            $data[$i] =~ s/\D//g;
        }
        $password = $data[0];
        $termflg = $data[1];
        $termtime = $data[2];
        $totalfigure = $data[3];
        $todayfigure = $data[4];
        $ydayfigure = $data[5];
        $totalimg = $data[6];  
        $todayimg = $data[7];
        $ydayimg = $data[8];
    }else{
        if($newfile != 1){return 'NG';}
        open(FILE, "> $path") or return '';
        print FILE "$password\n";
        print FILE "$termflg\n";
        print FILE "$termtime\n";
        print FILE "$totalfigure\n";
        print FILE "$todayfigure\n";
        print FILE "$ydayfigure\n";
        print FILE "$totalimg\n";
        print FILE "$todayimg\n";
        print FILE "$ydayimg\n";
        close(FILE);
        chmod(0666, $path);
    }
}

#=========================================#
# IPファイルパスおよびカウントパス作成
# (flg, before, ID)
# true:IPファイルパス false:カウントパス
# before 日前
#=========================================#
sub getPath {
    my($time) = time;
    $time += 32400;
    $time -= (86400*$_[1]);

    my($day,$mon,$year) = (gmtime($time))[3..5];
    $mon++;
    $year += 1900;

    if($_[0] eq 'true'){
        return "$basepath$year$mon$day$_[2]ip\.cgi";
    }else{
        return "$basepath$year$mon$day$_[2]cnt\.cgi";
    }
}

#======================#
#     カウント処理
#======================#
sub countUp {
    my($value);
    if((-e $_[0])){
        if($_[1] eq 'true'){
            open(FILE, "+< $_[0]") or return '';
            $value = <FILE>;
            seek(FILE, 0, 0);
            print FILE ++$value;
        }else{
            open(FILE, "< $_[0]") or return '';
            $value = <FILE>;
        }
        close(FILE);
    }else{
        open(FILE, "> $_[0]") or return '';
        if($_[1] eq 'true'){$value = 1;}
        else{$value = 0;}
        print FILE $value; 
        close(FILE);
        chmod(0666, $_[0]);
    }
    return $value;
}

#======================#
#   ファイルロック
#======================#
sub lock {
    my($count) = $retry;
    while(!mkdir($lockdir, 0755)){    #-- ディレクトリが作成されるまで繰り返す
        if(--$count <= 0){
            if($_[0] eq ''){
                if(((-M $lockdir)*86400) > 600){
                    return 'ok';
                }else{exit;}
            }else{return '';}
        }
        sleep(1);
    }
    return 'ok';
}

#======================#
#     ロック解除
#======================#
sub unlock {
    rmdir($lockdir);
}
1;

Zerion Mini Shell 1.0