%PDF- %PDF-
Direktori : /home/rappan/www/_cgi_cnt/ |
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 © 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; }