?? svote9.cgi
字號:
#!/usr/bin/perl
$dirname=&mypath;
##################################################################
## 本版使用于WINDOWS和Unix/Linux等操作系統(tǒng)版 ##
##################################################################
require "$dirname/setup2002.pl";
require "$dirname/svote.lib";
&read_form;
&GetCookies;
&Ursid;
$num=$FORM{'num'};
$compose="50";
$pollfilt="$usrpwdfile/$num";
if($CONFIG{'compose'}){$compose=$CONFIG{'compose'};}
unless (-e "$pollfilt"){ &error("錯(cuò)誤","調(diào)查項(xiàng)目不存在或已刪除");}
if ($FORM{'sub_show'}){ &vote;}
elsif($FORM{'cunt'}){ &pollname;}
elsif($FORM{'line'}){ &line_line;}
elsif($FORM{'open'}){ &open_line;}
elsif($FORM{'sub_me'}){&show;}
else{
&Header;
if(!$FORM{'width'}){&Top;}
print qq~<table border=0 cellpadding=0 cellspacing=0><tr><td><p><script src=$CONFIG{'cgi_url'}/$CGI{'vote'}?id=$id&line=$num></script></BODY></table>\n~;
&Tailer;
}
exit;
##
sub line_line {
open(CODE,"$dirname/$FILE{'poll'}/$id/$FORM{'line'}/code.cgi");
$code=<CODE>;
close(CODE);
print "Content-type: text/html\n\n";
print<<EOF;
document.write("$code");
EOF
}
###
sub open_line {
print "Content-type: text/html\n\n";
print<<EOF;
document.write("<script>window.open('$CONFIG{'cgi_url'}/$CGI{'vote'}?id=$id&num=$FORM{'open'}&width=1','','width=$FORM{'width'},height=$FORM{'height'},top=30,left=180,resizable=yes,scrollbars=yes')</script> ");
EOF
}
#####投
sub vote {
if(($CONFIG{'regcook'})&&($cookid)){ &error("錯(cuò)誤2","請先保存COOKIE方式登陸或注冊<br>才能正確記錄你的投票");}
open(NUMBER,"$dirname/$FILE{'poll'}/$id/$num.cgi");
$NUMBER=<NUMBER>;
close(NUMBER);
($l_num,$l_date,$l_lockid,$l_mode,$l_look,$years,$mons,$mdays,$hours,$mins,$pmax,$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/,$NUMBER);
$sotpday="$years$mons$mdays$hours$mins";
$newtime=$sotpday-$polltime;
if($newtime < 1){ &error("錯(cuò)誤","本調(diào)查項(xiàng)目截止時(shí)間已到!<br>現(xiàn)在時(shí)間: $year/$mon/$mday $hour:$min"); }
open(CCOO,"$pollfilt/name.cgi");
@TPRP = <CCOO>;
$TPRPS=@TPRP;
close(CCOO);
if($l_lockid eq "checked"){
foreach $TPRP (@TPRP) {
($ipa,$ipdata)=split(/\t/,$TPRP);
if($name eq $ipa){ &error("錯(cuò)誤","本調(diào)查項(xiàng)目你已投票了!<br>時(shí)間:$ipdata"); }
}
}
####新參投者
if((!$l_total)&&($l_six ne "no")&&($l_top10 ne "3")){
if($cookid){ &error("錯(cuò)誤2","請先保存COOKIE方式登陸<br>才能正確記錄你的投票");}
unless (-f "$usrpwdfile/top$num/$name"){
open(TOPNUM1,"$usrpwdfile/top$num/top10.dat");
$NUM2=<TOPNUM1>;
close(TOPNUM1);
if($l_newtop){
open(TOPNUM,">$usrpwdfile/top$num/$name");
if($l_top10=="1"){print TOPNUM "0\n$NUM2";}
elsif($l_top10=="2"){print TOPNUM "0(0)";}
close(TOPNUM);
}
else{&error("錯(cuò)誤","本主題不允許新參投者加入");}
}
}
####
#多
if($l_total){
if($l_mode ne "checked"){
for ($i=1; $i<$FORM{'max'}; $i++) {
if ($FORM{$i}) {$aa="$i-$FORM{$i}"; push(@SINGLE,$aa); }
}
$SINGLE=@SINGLE;
$SINGLE++;
if(($SINGLE ne $FORM{'max'})&&($l_neat ne "")) {&error("錯(cuò)誤","請選齊投票項(xiàng)目$SINGLE");}
}
else{
for ($i=1; $i< $FORM{'max'}; $i++) {
open(WWW,"$pollfilt/$i");
@fnum = <WWW>;
close(WWW);
$fnum=@fnum;
$fnum++;
$ijs="";
for ($j=1; $j <$fnum; $j++) {
$ij="$i-$j";
$ijtmp=$FORM{$ij};
if($ijtmp){
push(@SINGLE,$ij);
$ijs=$i;
}
}
push(@SIJ,$ijs);
}
###
if($l_neat){
@SORTED = (sort { $b <=> $a } @SIJ);
$max = pop(@SORTED);
$min = shift(@SORTED);
$qq=$min+$max;
if($qq ne $FORM{'max'}){&error("錯(cuò)誤","請選齊投票主題,你只選<b> @SIJ </b>主題");}
}
###
}
$lockerror = &LockFile("$pollfilt/name.cgi");
&error("錯(cuò)誤","服務(wù)器占用中,請稍后再試") if($lockerror);
foreach $m(@SINGLE) {
($qnum,$hnum)=split(/-/,$m);
open(WWWBOARD,"$pollfilt/$m");
$numps = <WWWBOARD>;
close(WWWBOARD);
$numps++;
open(NUM,">$pollfilt/$m");
print NUM "$numps";
close(NUM);
open(WWWBOARD1,"$pollfilt/z$qnum");
$numzps = <WWWBOARD1>;
close(WWWBOARD1);
$numzps++;
open(NUM1,">$pollfilt/z$qnum");
print NUM1 "$numzps";
close(NUM1);
}
&UnlockFile("$pollfilt/name.cgi");
}
###單
else {
if($l_mode eq "checked"){
for ($i=1; $i<$FORM{'max'}; $i++) {
if ($FORM{$i}) { push(@SINGLE,$i); }
}
if(!@SINGLE) {&error("錯(cuò)誤","請選項(xiàng)目投票");}
$bb=@SINGLE;
if(($bb > $pmax) || ($bb < $pmin)){&error("錯(cuò)誤","選定項(xiàng)目不能多于$pmax項(xiàng),少于$pmin項(xiàng)<br> 現(xiàn)在你的選項(xiàng)是 $bb ");}
$lockerror = &LockFile("$pollfilt/name.cgi");
&error("錯(cuò)誤","服務(wù)器占用中,請稍后再試") if($lockerror);
foreach $m(@SINGLE) {
open(WWWBOARD,"$pollfilt/$m");
$numps = <WWWBOARD>;
close(WWWBOARD);
$numps++;
open(NUM,">$pollfilt/$m");
print NUM "$numps";
close(NUM);
open(WWWBOARD1,"$pollfilt/000");
$numzps = <WWWBOARD1>;
close(WWWBOARD1);
$numzps++;
open(NUM1,">$pollfilt/000");
print NUM1 "$numzps";
close(NUM1);
}
}
else {
if($FORM{'tpnum'} eq ""){&error("錯(cuò)誤","請選項(xiàng)目投票");}
$lockerror = &LockFile("$pollfilt/name.cgi");
&error("錯(cuò)誤","服務(wù)器占用中,請稍后再試") if($lockerror);
open(WWWBOARD,"$pollfilt/$FORM{'tpnum'}");
$numps = <WWWBOARD>;
close(WWWBOARD);
$numps++;
open(NUM,">$pollfilt/$FORM{'tpnum'}");
print NUM "$numps";
close(NUM);
open(WWWBOARD1,"$pollfilt/000");
$numzps = <WWWBOARD1>;
close(WWWBOARD1);
$numzps++;
open(NUM1,">$pollfilt/000");
print NUM1 "$numzps";
close(NUM1);
}
} #單END
open(NUM2,">$pollfilt/name.cgi");
print NUM2 "$name\t$date_time\t$FORM{'tpnum'}@SINGLE\n";
print NUM2 @TPRP;
close(NUM2);
&UnlockFile("$pollfilt/name.cgi");
$donepage="$CONFIG{'cgi_url'}/$CGI{'vote'}?id=$id&num=$num&sub_me=1";
print "Content-type: text/html\n";
print "Location:$donepage\n\n";
print "<a href=$CGI{'vote'}?id=$id&num=$num&sub_me=1>如不能進(jìn)入,請點(diǎn)擊這里</a>";
if(($l_mail)&&($CONFIG{'sendmail'})){&POST_mail;}
exit;
}
#####-看
sub show {
if($FORM{'sub_me'}==1){ $regok="1"; $pollname=" (謝謝您投出寶貴的一票?。?quot;;}
open(NUMBER,"$dirname/$FILE{'poll'}/$id/$num.cgi");
$NUMBER=<NUMBER>;
close(NUMBER);
($l_num,$l_date,$l_lockid,$l_mode,$l_look,$years,$mons,$mdays,$hours,$mins,$l_no,$l_no,$l_total,$l_neat,$l_six,$l_pfs,$l_jfs,$l_top10,$l_newtop,$l_qh,$l_mail,$l_ly,$l_regk)=split(/\t/,$NUMBER);
$sotpday="$years$mons$mdays$hours$mins";
$newtime=$sotpday-$polltime;
if(($l_regk)&&(!$regok)&&($cookid)){ &error("$name錯(cuò)誤","請先保存COOKIE方式登陸或注冊");}
if(($l_look eq "checked")&&($newtime > 0)){
open(CCOO,"$pollfilt/name.cgi");
@TPRPW = <CCOO>;
close(CCOO);
foreach $TPRPW(@TPRPW) {
($ip,$ipdata)=split(/\t/,$TPRPW);
if($name eq $ip){ $nameok="1";}
}
if(!$nameok){&error("錯(cuò)誤","請先投票"); }
}
open(CPWD,"$pollfilt/$num.cgi");
@CPWD=<CPWD>;
$cpsize=@CPWD;
close(CPWD);
open(CPWDRS,"$pollfilt/name.cgi");
@sizes=<CPWDRS>;
$sizes=@sizes;
close(CPWDS);
&Header("投票結(jié)果");
&Top;
print qq~<script>
function Showpost(num){
var filename="$CGI{'guest'}?id="+num;
window.open(filename,"顯示窗口","scrollbars=no,width=320,height=280");
}
</script>
~;
##多
if($l_total){
print qq~<center><TABLE cellSpacing=3 cellPadding=3 width=644 bgColor="#46C2FF" border=0><TR><TD class=bbc><IMG src="$CONFIG{'img_url'}/sub.gif"> $l_num ->> 結(jié)果:<a href=$CGI{'vote'}?id=$id&cunt=$num>共有 <b>$sizes</b> 人參加投票</a>$pollname ~;
if($l_ly){ print qq~||<A href="javascript:Showpost('$id&post=$num')"><IMG alt="發(fā)表意見建議" src="$CONFIG{'img_url'}/guest.gif" border=0 width="16" height="16">評論</A>~;}
if(($l_mail)&&($CONFIG{'sendmail'})){ print qq~||<A href="javascript:Showpost('$id&look=$num')"><IMG alt="關(guān)注本次調(diào)查結(jié)果" src="$CONFIG{'img_url'}/email.gif" border=0 width="16" height="16">關(guān)注</A>~;}
print qq~</TABLE><TABLE border=1 borderColor=#ffffff borderColorDark=#ffffff borderColorLight=#000000 cellSpacing=0 bgColor="#46C2FF" width=640>
<tr><td class=bbc><TABLE border=0 width=640 cellSpacing=1><tr bgcolor=#FFD7C height=25><td align=center>主 題<td align=center width=120>項(xiàng) 目<td align=center width=200 background="$imgurl/phb.gif">圖 示<td align=center width=40>票數(shù)<td align=center width=50>百分比</td></tr>~;
foreach $CPWD(@CPWD) {
$CPWD=~s/\n//g;
($sh,$poname)=split(/\t/,$CPWD);
($poname1,$poname2)=split(/==/,$poname);
open(COCO,"$pollfilt/z$sh");
$size=<COCO>;
close(COCO);
if(!$size){$size=0;}
open(MAIN,"$pollfilt/$sh");
@namesize=<MAIN>;
$bj=@namesize;
close(MAIN);
$qw="";
$poname4="";
$propotion4="";
$pollsize4="";
$pollimg4="";
for ($j=0; $j <$bj; $j++) {
$namesize=@namesize[$j];
$namesize=~s/\n//g;
($jno,$poname3)=split(/\t/,$namesize);
$poname4="$poname4<tr><td height=18 align=right>$poname3";
$fsh1="$sh-$jno";
open(FSH,"$pollfilt/$fsh1");
$pollsize=<FSH>;
close(FSH);
if(!$pollsize){$pollsize=0;}
$propotion = $pollsize/$size*100;
$barwidth = 197 * $propotion/100;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -