?? judge.cgi
字號:
#!/usr/bin/perl
$dirname=&mypath;
##################################################################
## ##
## 本版使用于WINDOWS和Unix/Linux等操作系統版 ##
##################################################################
require "$dirname/setup2002.pl";
require "$dirname/svote.lib";
&read_form;
&GetCookies;
&Ursid;
$num=$FORM{'num'};
if($urspass ne $password){ &error("錯誤","你沒權管理$id賬號密碼有錯?");}
unless (-e "$usrpwdfile/$num.cgi"){ &error("錯誤","項目不存在!");}
open(NUMBER,"$usrpwdfile/$num.cgi")|| &error("錯誤","項目不能打開!請稍后再試");
$NUM=<NUMBER>;
close(NUMBER);
$NUM=~s/[\n\r]//g;
($l_num,$l_date,$l_lockid,$l_mode,$l_look,$years,$mons,$mdays,$hours,$mins,$l_pmax,$l_pmin,$l_total,$l_neat,$l_six,$l_pfs,$l_jfs,$l_top10,$l_newtop,$l_qh,$l_mail,$l_ly,$l_regk)=split(/\t/,$NUM);
if($action eq "new"){ &Prinhtml;}
else{ &showhtml;}
exit;
##
sub showhtml {
$sotpday="$years$mons$mdays$hours$mins";
$newtime=$sotpday-$polltime;
if($newtime > 0){ &error("錯誤","調查截止時間未到!無法進行計分<br>現在時間: $year/$mon/$mday $hour:$min"); }
open(SIX,"$usrpwdfile/six.txt");
@cksix=<SIX>;
close(SIX);
$sixsize=@cksix;
$sixqh=@cksix[0];
$sixqh=~s/[\n\r]//g;
if(($l_total)||($l_six eq "no")||($l_pfs eq "")||($l_jfs eq "")||($l_qh eq "")){ &error("錯誤","本題項目第$sixqh期不能評分或已評過分!");}
if($l_qh != $sixqh){ &error("錯誤","本主題評分期號“$l_qh”與[評分資料]期號“$sixqh”不同,如要新的評分,請更新[輸入評分資料]");}
unlink("$usrpwdfile/top$num/temp.dat");
open(NUM,"$usrpwdfile/$num/name.cgi");
@ndat=<NUM>;
$end=@ndat;
close(NUM);
open(COCO,"$usrpwdfile/$num/$num.cgi");
@nums=<COCO>;
close(COCO);
for ($i=0;$i<$end;$i++) {
$tpm="";
$jfs_size="0";
$pollname=@ndat[$i];
$pollname=~s/\n//g;
($pname,$ipdata,$pollsh)=split(/\t/,$pollname);
@pollsh = split(/ /,$pollsh);
$pollsize=@pollsh;
foreach $num(@nums) {
$num=~s/[\r\n]//g;
($sh,$pollname)=split(/\t/,$num);
foreach $pollsh1(@pollsh) {
if($sh==$pollsh1){ $tpm .="BBC$l_six$pollname, ";} #投入名稱
}
}
for ($si=1;$si<$sixsize;$si++) {
$psix=@cksix[$si];
$psix=~s/[\n\r]//g;
if($psix ne ""){
$psix1="BBC$psix, ";
if($tpm=~/$psix1/){ $jfs_size++;} #查對錯
}
}
open(TOPNAME,"$usrpwdfile/top$num/$pname");
@TOPNAME=<TOPNAME>;
close(TOPNAME);
if($l_top10=="2"){ ###分數
$topname2=@TOPNAME[0];
$topname2=~s/[\r\n]//g;
($urszf,$ursbf)=split(/\(/,$topname2);
$ursbf=~s/[\(\)]//g;
if($ursbf eq ""){$ursbf="0";}
if($urszf eq ""){$urszf="0";}
}
if($l_jfs=="1"){ #免扣累加
if($jfs_size){ $bcdf=($l_pfs)*($jfs_size);$zgdf=($bcdf)+($urszf);}
else{$bcdf=0; $zgdf=$urszf;}
}
elsif($l_jfs=="2"){ #免扣不累
if($jfs_size){ $bcdf=$l_pfs; $zgdf=($bcdf)+($urszf);}
else{$bcdf=0; $zgdf=$urszf;}
}
elsif($l_jfs=="3"){ #要扣項數得分
$bcdf=($l_pfs)*($pollsize);
if($jfs_size){ $zgdf=($bcdf)+($urszf);}
else{ $zgdf=($urszf)-($bcdf); $bcdf=-($bcdf);}
}
elsif($l_jfs=="4"){ #相抵消
$hh=($pollsize)-($jfs_size);#不命中次
$hh1=($jfs_size)-($hh);#抵后次
$bcdf=($hh1)*($l_pfs);
$zgdf=($bcdf)+($urszf);
}
else{$bcdf=0; $zgdf=0;}
if($bcdf >0){ $urshit++; $tophit="★"; }
elsif($bcdf < 0){ $tophit="☆"; }
else{ $tophit="≡"; }
open(TEMP,">>$usrpwdfile/top$num/temp.dat"); #本期參投者
print TEMP "$pname\n";
close(TEMP);
if($l_top10=="1"){ ###符號
$topname1=@TOPNAME[0];
$topname2=@TOPNAME[1];
$topname1=~s/[\n\r]//g;
$topname2=~s/[\n\r]//g;
if($topname1 eq ""){$topname1="0";}
if($bcdf >0){ $topname1++;}
open(TOPNAME1,">$usrpwdfile/top$num/$pname");
print TOPNAME1 "$topname1\n$topname2,$tophit";
close(TOPNAME1);
}
elsif($l_top10=="2"){ ##分數
open(TOPNAME1,">$usrpwdfile/top$num/$pname");
print TOPNAME1 "$zgdf($bcdf)\n";
print TOPNAME1 @TOPNAME;
close(TOPNAME1);
}
}
open(NUMBER,">$usrpwdfile/$num.cgi");
print NUMBER"$l_num\t$l_date\t$l_lockid\t$l_mode\t$l_look\t$years\t$mons\t$mdays\t$hours\t$mins\t$l_pmax\t$l_pmin\t$l_total\t$l_neat\t$l_six\t$l_pfs\t$l_jfs\t$l_top10\t$l_newtop\t$noqh\t$l_mail\t$l_ly\t$l_regk";
close(NUMBER);
open(TEMP2,"$usrpwdfile/top$num/temp.dat"); #
@bqname=<TEMP2>;
close(TEMP2);
opendir(MEMBERDIR, "$usrpwdfile/top$num");
@hastitles=readdir(MEMBERDIR);
closedir(MEMBERDIR);
foreach $m(@hastitles){
if($m !~/\.dat/){
$ursin="";
foreach $mm(@bqname){
$mm=~s/[\n\r]//g;
if($mm eq "$m"){ $ursin="ok";}
}
if(!$ursin){
open(NONAME,"$usrpwdfile/top$num/$m");
@NONAME=<NONAME>;
close(NONAME);
$tname1=@NONAME[0];
$tname2=@NONAME[1];
$tname1=~s/[\r\n]//g;
if($l_top10=="1"){ ###符號
$tname2=~s/[\r\n]//g;
open(NONAME1,">$usrpwdfile/top$num/$m");
print NONAME1 "$tname1\n$tname2,□";
close(NONAME1);
}
elsif($l_top10=="2"){ ##分數
($n1,$n2)=split(/\(/,$tname1);
if($n1 !~/^([0-9\-]*)$/){$n1="0";}
if($n1 eq ""){$n1="0";}
open(NONAME1,">$usrpwdfile/top$num/$m");
print NONAME1 "$n1(□)\n";
print NONAME1 @NONAME;
close(NONAME1);
}
}
}
}
unlink("$usrpwdfile/top$num/temp.dat");
open(TOPDAT,"$usrpwdfile/top$num/top10.dat");
$TOP10=<TOPDAT>;
close(TOPDAT);
open(DAT,">$usrpwdfile/top$num/top10.dat");
print DAT"$TOP10,□";
close(DAT);
open(TOPQHDAT,"$usrpwdfile/top$num/topqh.dat");
@TOPQH=<TOPQHDAT>;
close(TOPQHDAT);
open(DAT1,">$usrpwdfile/top$num/topqh.dat");
print DAT1"$sixqh\n";
print DAT1 @TOPQH;
close(DAT1);
&Prinhtml;
&Header;
print qq~<p>第<b>$sixqh</b>期次的“$l_num”評分已完成<p>前十名鏈接代碼:<INPUT class=form size=100 value="<script src=$CONFIG{'cgi_url'}/$FILE{'poll'}/$id/top$num/top10.txt></script>" ><p><a href=$CONFIG{'cgi_url'}/$FILE{'poll'}/$id/$num.html>查看排行榜</a>~;
}
##########
sub Prinhtml{
open(LISTDAT,"$usrpwdfile/top$num/topqh.dat");
@qhlist=<LISTDAT>;
close(LISTDAT);
$qhmax=@qhlist;
$qhmax--;
opendir(NAMEDIR, "$usrpwdfile/top$num");
@topname=readdir(NAMEDIR);
closedir(NAMEDIR);
foreach $topname(@topname){
if($topname !~/\./){
open(LISTNAME,"$usrpwdfile/top$num/$topname");
@namelist=<LISTNAME>;
close(LISTNAME);
$top10_dat=@namelist[0];
$top10_dat=~s/[\r\n\s]//g;
$m="$top10_dat\t$topname\n";
push(@top10,$m);
}
}
@top10 = (sort { $b <=> $a } @top10);
if(($qhmax <4)&&($qhmax >0)){$wid="110";}
elsif(($qhmax >3)&&($qhmax <7)){$wid="80";}
elsif(($qhmax >6)&&($qhmax <11)){$wid="60";}
elsif(($qhmax >10)&&($qhmax <15)){$wid="45";}
else{$wid="30";}
open(OUTHTML,">$usrpwdfile/$num.html");
print OUTHTML <<Header;
<html><head><title>-$l_num-榜行榜</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="Description" content="互動調查,免費調查引擎"><meta name="Keywords" content="互動調查,調查,引擎調查,投票,免費調查,vote,research">
<LINK REL=stylesheet HREF="$imgurl/styles.css" TYPE=text/css>
</head><base onmouseover="window.status='$CONFIG{'vote'}—互動調查,免費調查引擎';return true">
<body bgcolor=#FFFFF0 background=$CONFIG{'img_url'}/vote3.gif>
<center><H2>$l_num 榜行榜</H2>
Header
if($l_top10=="1"){
print OUTHTML"<table border=1 width=500 cellSpacing=0 cellPadding=0 bgColor=#FFFFF0><tr align=center bgColor=#77A4FF height=25><td width=120>參投者<td width=60>得分<td>詳 細(更新時間:$logtime)</td></tr>\n";
}
elsif($l_top10=="2"){
$qhmax1="0";
print OUTHTML"(更新時間:$logtime)<br><table border=1 cellSpacing=0 cellPadding=0 bgColor=#FFFFF0><tr align=center bgColor=#77A4FF height=25><td width=100>參投者";
for ($j=$qhmax;$j>-1;$j--) {
$qh_1=@qhlist[$j];
$qh_1=~s/[\n\r]//g;
if($qh_1 ne ""){$qhmax1++; print OUTHTML"<td width=$wid>$qh_1";}
}
}
close(OUTHTML);
#opendir(NAMEDIR, "$usrpwdfile/top$num");
#@topname=readdir(NAMEDIR);
#closedir(NAMEDIR);
foreach $topda(@top10){
$topda=~s/[\r\n]//g;
($so,$topname)=split(/\t/,$topda);
#if($topname !~/\./){
open(LISTNAME,"$usrpwdfile/top$num/$topname");
@namelist=<LISTNAME>;
close(LISTNAME);
if($l_top10=="1"){
$name_dat=@namelist[0];
$name_top=@namelist[1];
$name_dat=~s/\n//g;
$name_top=~s/[\n\,]//g;
open(HTMLMA,">>$usrpwdfile/$num.html");
print HTMLMA "<tr><td align=center>$topname<td align=center>$name_dat<td>$name_top";
close(HTMLMA);
}
elsif($l_top10=="2"){
$qhmax2=$qhmax1-1;
open(HTMLMA,">>$usrpwdfile/$num.html");
print HTMLMA "<tr align=center><td>$topname";
for ($ij=$qhmax2;$ij>-1;$ij--) {
$qh_2=@namelist[$ij];
$qh_2=~s/[\n\r]//g;
if(!$qh_2){$qh_2="□(□)";}
$qh_2=~s/\(/<br>\(/g;
print HTMLMA"<td>$qh_2";
}
close(HTMLMA);
# }
}
}
open(OUTHTML,">>$usrpwdfile/$num.html");
print OUTHTML <<Header;
</table><table border="0" width="100%"><TR align="center"><TD>服務:《<a href=$CONFIG{'url'}>$CONFIG{'vote'}</a>》 編程:©<a href=http://hk666b.126.com>CK聯合小組</a></table></BODY></HTML>
Header
close(OUTHTML);
$topi=@top10; ##前10名
if($topi > 10){$topi="10";}
for ($ti=0; $ti<$topi; $ti++) {
$topda2=@top10[$ti];
$topda2=~s/[\r\n\"]//g;
($so2,$topname2)=split(/\t/,$topda2);
$so2=~s/\(.+?\)//g;
$so2=~s/[\(\)]//g;
$topcode .="<tr><td>$topname2</td><td align=center>$so2</td></tr>";
}
open(TOPCODE,">$usrpwdfile/top$num/top10.txt");
print TOPCODE qq~document.write("<table border=0 cellpadding=1 cellspacing=1 width=95%><tr align=center><td>網 名</td><td>成 績</td></tr>$topcode</table>");~;
close(TOPCODE);
if($action eq "new"){
&Header;
print qq~<p>第<b>$sixqh</b>期次的“$l_num”排行榜已重新生成<p>前十名鏈接代碼:<INPUT class=form size=100 value="<script src=$CONFIG{'cgi_url'}/$FILE{'poll'}/$id/top$num/top10.txt></script>" ><p><a href=$CONFIG{'cgi_url'}/$FILE{'poll'}/$id/$num.html>查看排行榜</a>~;
}
}
############
sub mypath {
$dirname=__FILE__;
if ($dirname=~/\\/) { $dirname=~ s/\\/\//g;}
if ($dirname) {$mypath=substr($dirname,0,rindex($dirname,"/"));}
else {
$mypath=substr($ENV{'PATH_TRANSLATED'},0,rindex($ENV{'PATH_TRANSLATED'},"\\"));
$mypath=~ s/\\/\//g;
}
}
exit;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -