%PDF- %PDF-
Mini Shell

Mini Shell

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

#!/usr/bin/perl

#========================================================
# らくらく日計カウンタv1.0 設定プログラム (2002/11/23)
# Copyright(C) 2002 Mura's…
# http://www1.harenet.ne.jp/~a-mura/
#========================================================

#-- 設定ファイル読み込み
require './param.cgi';

#-- ここ自身のファイルパス
$setpath = 'dayset.cgi';

#-- フォームデータ読み込み&デコード
&formDecode;

#-- パスワード確認画面へ
if($FORM{'pass'} eq '' && $FORM{'id'} eq ''){
    &startView;
}

#-- 更新処理
if($FORM{'totalradio'} ne '' && $FORM{'todayradio'} ne '' && $FORM{'ydayradio'} ne '' && $FORM{'ipradio'} ne '' && $FORM{'imgradio1'} ne '' && $FORM{'imgradio2'} ne '' && $FORM{'imgradio3'} ne ''){
    if(&lock('renewal') eq ''){&startView('ファイルロックに失敗しました');};
    $setres = &renewal;
    &unlock;
    if($setres eq ''){&startView('ファイル保存に失敗しました');}
    else{&startView('更新しました');}
}

#-- パスワード確認
if(open(FILE, "< $basepath$FORM{'id'}set\.cgi")){
    $passvalue = <FILE>;
    $passvalue =~ s/\r//;
    $passvalue =~ s/\n//;
    if($FORM{'pass'} ne $passvalue){&startView('パスワードが違います');}
}else{&startView('ファイル読み込みに失敗しました');}

#-- カウンタ設定画面へ
$totalvalue = &countUp("$basepath$FORM{'id'}cnt\.cgi", 'false');
$todayvalue = &countUp(&getPath('false', 0, $FORM{'id'}), 'false');
$ydayvalue = &countUp(&getPath('false', 1, $FORM{'id'}), 'false');

if($totalvalue eq '' || $todayvalue eq '' || $ydayvalue eq '' || &readSetup($FORM{'id'}) eq '' || &readSetup($FORM{'id'}) eq 'NG'){
    &startView('ファイル読み込みに失敗しました');
}
    
@totalfig = ();
@todayfig = ();
@ydayfig = ();
for($i=2; $i<=10; $i++){
    if($i == $totalfigure){push(@totalfig, 'CHECKED');}
    else{push(@totalfig, '');}
    if($i == $todayfigure){push(@todayfig, 'CHECKED');}
    else{push(@todayfig, '');}
    if($i == $ydayfigure){push(@ydayfig, 'CHECKED');}
    else{push(@ydayfig, '');}
}

@ipcheck = ('','');
if($termflg == 0){$ipcheck[1] = 'CHECKED';}
else{$ipcheck[0] = 'CHECKED';}

@imgcheck = ();
$imgindex = 1;
$searchbase = $imgbase.'image';
while(-e "$searchbase$imgindex/0\.gif"){
    $imgindex++;
}

$imgcheckstr1;
$imgcheckstr2;
$imgcheckstr3;
$totalsub = substr($totalimg, length($totalimg)-7, 7); $totalsub =~ s/\D//g;
$todaysub = substr($todayimg, length($todayimg)-7, 7); $todaysub =~ s/\D//g;
$ydaysub = substr($ydayimg, length($ydayimg)-7, 7); $ydaysub =~ s/\D//g;
if($totalsub >= $imgindex || $totalsub eq ''){$totalsub = 1;}
if($todaysub >= $imgindex || $todaysub eq ''){$todaysub = 1;}
if($ydaysub >= $imgindex || $ydaysub eq ''){$ydaysub = 1;}

for($i=1; $i<$imgindex; $i++){
    if($i == $totalsub){$imgcheckstr1 = 'CHECKED';}else{$imgcheckstr1 = '';}
    if($i == $todaysub){$imgcheckstr2 = 'CHECKED';}else{$imgcheckstr2 = '';}
    if($i == $ydaysub){$imgcheckstr3 = 'CHECKED';}else{$imgcheckstr3 = '';}

    push(@imgcheck, "<TR>
                       <TD width=\"20\"><INPUT type=\"radio\" name=\"imgradio1\" value=\"$searchbase$i/\" $imgcheckstr1></TD>
                       <TD width=\"20\"><INPUT type=\"radio\" name=\"imgradio2\" value=\"$searchbase$i/\" $imgcheckstr2></TD>
                       <TD width=\"20\"><INPUT type=\"radio\" name=\"imgradio3\" value=\"$searchbase$i/\" $imgcheckstr3></TD>
                       <TD><IMG src=\"$searchbase$i/0.gif\"><IMG src=\"$searchbase$i/1.gif\"><IMG src=\"$searchbase$i/2.gif\"><IMG src=\"$searchbase$i/3.gif\"><IMG src=\"$searchbase$i/4.gif\"><IMG src=\"$searchbase$i/5.gif\"><IMG src=\"$searchbase$i/6.gif\"><IMG src=\"$searchbase$i/7.gif\"><IMG src=\"$searchbase$i/8.gif\"><IMG src=\"$searchbase$i/9.gif\"></TD>
                     </TR>")
}
&setView;
exit;


#==========================#
#  フォームデータ読み込み
#==========================#
sub formDecode {
    my($query,$pair,$name,$value);
    read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
    foreach $pair(split(/&/, $query)){
        ($name, $value) = split(/=/, $pair);
        # 文字のデコード
        $value =~ tr/+/ /;
        $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/eg;
        $FORM{$name} = $value;
    }
}

#=====================#
#    ファイル更新
#=====================#
sub renewal {
    $FORM{'total'} =~ s/\D//g;
    $FORM{'today'} =~ s/\D//g;
    $FORM{'yday'} =~ s/\D//g;
    $FORM{'iptime'} =~ s/\D//g;
    if($FORM{'total'} eq ''){$FORM{'total'} = 0;}
    if($FORM{'today'} eq ''){$FORM{'today'} = 0;}
    if($FORM{'yday'} eq ''){$FORM{'yday'} = 0;}
    if($FORM{'iptime'} eq ''){$FORM{'iptime'} = 30;}
    if($FORM{'iptime'} == 0){$FORM{'ipradio'} = 0;}

    my($path) = "$basepath$FORM{'id'}cnt\.cgi";
    open(FILE, "+< $path") or return '';
    seek(FILE, 0, 0);
    truncate(FILE, 0);
    print FILE $FORM{'total'};
    close(FILE);

    $path = &getPath('false', 0, $FORM{'id'});
    open(FILE, "+< $path") or return '';
    seek(FILE, 0, 0);
    truncate(FILE, 0);
    print FILE $FORM{'today'};
    close(FILE);
    
    $path = &getPath('false', 1, $FORM{'id'});
    open(FILE, "+< $path") or return '';
    seek(FILE, 0, 0);
    truncate(FILE, 0);
    print FILE $FORM{'yday'};
    close(FILE);

    $path = "$basepath$FORM{'id'}set\.cgi";
    open(FILE, "+< $path") or return '';
    seek(FILE, 0, 0);
    truncate(FILE, 0);
    print FILE "$FORM{'pass'}\n";
    print FILE "$FORM{'ipradio'}\n";
    print FILE "$FORM{'iptime'}\n";
    print FILE "$FORM{'totalradio'}\n";
    print FILE "$FORM{'todayradio'}\n";
    print FILE "$FORM{'ydayradio'}\n";
    print FILE "$FORM{'imgradio1'}\n";
    print FILE "$FORM{'imgradio2'}\n";
    print FILE "$FORM{'imgradio3'}\n";
    close(FILE);
    return 'ok';
}

#=====================#
# パスワード確認画面
#=====================#
sub startView {

#-- サーバー出力
print <<END;
Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>らくらく日計カウンタ設定</TITLE>
</HEAD>
<BODY bgcolor="#ffffcc">
<BR>
<CENTER>
$_[0]
<FORM action="$setpath" method="POST">
<TABLE border="0" width="470" cellpadding="4">
  <TBODY>
    <TR>
      <TD bgcolor="#0000ff"><FONT color="#ffffff"><B>●カウンタの設定</B></FONT></TD>
    </TR>
    <TR>
      <TD>IDとパスワードを入力し、送信ボタンを押してください</TD>
    </TR>
  </TBODY>
</TABLE>
<TABLE border="0" width="400">
  <TBODY>
    <TR>
      <TD width="160" align="right">ID:</TD>
      <TD width="110"><INPUT type="text" name="id" maxlength="8" size="13"></TD>
      <TD></TD>
    </TR>
    <TR>
      <TD width="160" align="right">パスワード:</TD>
      <TD width="110"><INPUT type="password" name="pass" maxlength="8" size="13"></TD>
      <TD><INPUT type="submit" value="送信"></TD>
    </TR>
  </TBODY>
</TABLE>
<BR>
<HR size="1" width="450">
<!------------- 削除不可ここから -------------->
<TABLE border="0" width="400">
  <TBODY>
    <TR>
      <TD align="center">Copyright &copy 2002 <A href="http://www1.harenet.ne.jp/~a-mura/">Mura's…</A><BR>らくらく日計カウンタ v1.0</TD>
    </TR>
  </TBODY>
</TABLE>
<!------------- 削除不可ここまで -------------->
</FORM>
</CENTER>
</BODY>
</HTML>
END
exit;
}

#====================#
#      設定画面
#====================#
sub setView {

#-- サーバー出力
print qq|Content-type: text/html\n\n|;
print qq|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n|;
print qq|<HTML>\n|;
print qq|<HEAD>\n|;
print qq|<META name="GENERATOR" content="IBM WebSphere Homepage Builder Version 6.0.2.1 for Windows">\n|;
print qq|<META http-equiv="Content-Style-Type" content="text/css">\n|;
print qq|<TITLE>らくらく日計カウンタ設定</TITLE>\n|;
print qq|</HEAD>\n|;
print qq|<BODY bgcolor="#ffffcc">\n|;
print qq|<CENTER>\n|;
print qq|<FORM action="$setpath" method="POST">\n|;
print qq|<TABLE border="1" width="620" cellpadding="3" cellspacing="1">\n|;
print qq|  <TBODY>\n|;
print qq|    <TR>\n|;
print qq|      <TD colspan="2" align="center" bgcolor="#ff9966">各種設定</TD>\n|;
print qq|    </TR>\n|;
print qq|    <TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">ID名</FONT></TD>\n|;
print qq|      <TD>$FORM{'id'}</TD>\n|;
print qq|    </TR>\n|;
print qq|    <TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">パスワード</FONT></TD>\n|;
print qq|      <TD><INPUT type="password" maxlength="8" value="$FORM{'pass'}" size="9" name="pass">(最大8文字)</TD>\n|;
print qq|    </TR>\n|;
print qq|    <TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">トータルカウンタ桁数</FONT></TD>\n|;
print qq|      <TD><INPUT type="radio" name="totalradio" value="2" $totalfig[0]>2 <INPUT type="radio" name="totalradio" value="3" $totalfig[1]>3 <INPUT type="radio" name="totalradio" value="4" $totalfig[2]>4 <INPUT type="radio" name="totalradio" value="5" $totalfig[3]>5 <INPUT type="radio" name="totalradio" value="6" $totalfig[4]>6 <INPUT type="radio" name="totalradio" value="7" $totalfig[5]>7 <INPUT type="radio" name="totalradio" value="8" $totalfig[6]>8 <INPUT type="radio" name="totalradio" value="9" $totalfig[7]>9 <INPUT type="radio" name="totalradio" value="10" $totalfig[8]>10</TD>\n|;
print qq|    </TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">本日のカウンタ桁数</FONT></TD>\n|;
print qq|      <TD><INPUT type="radio" name="todayradio" value="2" $todayfig[0]>2 <INPUT type="radio" name="todayradio" value="3" $todayfig[1]>3 <INPUT type="radio" name="todayradio" value="4" $todayfig[2]>4 <INPUT type="radio" name="todayradio" value="5" $todayfig[3]>5 <INPUT type="radio" name="todayradio" value="6" $todayfig[4]>6 <INPUT type="radio" name="todayradio" value="7" $todayfig[5]>7 <INPUT type="radio" name="todayradio" value="8" $todayfig[6]>8 <INPUT type="radio" name="todayradio" value="9" $todayfig[7]>9 <INPUT type="radio" name="todayradio" value="10" $todayfig[8]>10</TD>\n|;
print qq|    </TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">昨日のカウンタ桁数</FONT></TD>\n|;
print qq|      <TD><INPUT type="radio" name="ydayradio" value="2" $ydayfig[0]>2 <INPUT type="radio" name="ydayradio" value="3" $ydayfig[1]>3 <INPUT type="radio" name="ydayradio" value="4" $ydayfig[2]>4 <INPUT type="radio" name="ydayradio" value="5" $ydayfig[3]>5 <INPUT type="radio" name="ydayradio" value="6" $ydayfig[4]>6 <INPUT type="radio" name="ydayradio" value="7" $ydayfig[5]>7 <INPUT type="radio" name="ydayradio" value="8" $ydayfig[6]>8 <INPUT type="radio" name="ydayradio" value="9" $ydayfig[7]>9 <INPUT type="radio" name="ydayradio" value="10" $ydayfig[8]>10</TD>\n|;
print qq|    </TR>\n|;
print qq|    <TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">トータルカウント数</FONT></TD>\n|;
print qq|      <TD><INPUT type="text" maxlength="10" size="11" value="$totalvalue" name="total"></TD>\n|;
print qq|    </TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">本日カウント数</FONT></TD>\n|;
print qq|      <TD><INPUT type="text" maxlength="10" size="11" value="$todayvalue" name="today"></TD>\n|;
print qq|    </TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">昨日カウント数</FONT></TD>\n|;
print qq|      <TD><INPUT type="text" maxlength="10" size="11" value="$ydayvalue" name="yday"></TD>\n|;
print qq|    </TR>\n|;
print qq|    <TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">IPアドレスチェック</FONT></TD>\n|;
print qq|      <TD><INPUT type="radio" name="ipradio" value="1" $ipcheck[0]>する <INPUT type="radio" name="ipradio" value="0" $ipcheck[1]>しない</TD>\n|;
print qq|    </TR>\n|;
print qq|    <TR>\n|;
print qq|      <TD width="220" align="center"><FONT color="#000080">IPチェック条件時間</FONT></TD>\n|;
print qq|      <TD><INPUT type="text" maxlength="4" size="11" value="$termtime" name="iptime"> 分 (1日は1440分)</TD>\n|;
print qq|    </TR>\n|;
print qq|    <TR>\n|;
print qq|      <TD colspan="2" align="center"><INPUT type="submit" value="更新"></TD>\n|;
print qq|    </TR>\n|;
print qq|  </TBODY>\n|;
print qq|</TABLE>\n|;
print qq|<BR>\n|;
print qq|<TABLE border="1" width="620" cellpadding="3" cellspacing="1">\n|;
print qq|  <TR>\n|;
print qq|    <TD align="center" bgcolor="#ccff99">累<BR>計</TD>\n|;
print qq|    <TD align="center" bgcolor="#ccff99">今<BR>日</TD>\n|;
print qq|    <TD align="center" bgcolor="#ccff99">昨<BR>日</TD>\n|;
print qq|    <TD align="center" bgcolor="#ccff99">画像選択</TD>\n|;
print qq|  </TR>\n|;
foreach(@imgcheck){
    print qq|$_\n|;
}
print qq|  <TR>\n|;
print qq|    <TD colspan="4" align="center"><INPUT type="submit" value="更新"></TD>\n|;
print qq|  </TR>\n|;
print qq|</TABLE>\n|;
print qq|<INPUT type="hidden" name="id" value="$FORM{'id'}">\n|;
print qq|</FORM>\n|;
print qq|</CENTER>\n|;
print qq|</BODY>\n|;
print qq|</HTML>\n|;
exit;
}

Zerion Mini Shell 1.0