⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svote9.cgi

📁 1。超强文件读写锁定
💻 CGI
📖 第 1 页 / 共 2 页
字号:
#!/usr/bin/perl
$dirname=&mypath;
##################################################################
## 本版使用于WINDOWS和Unix/Linux等操作系统版                    ## 
##################################################################
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("错误","调查项目不存在或已删除");}
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("错误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("错误","本调查项目截止时间已到!<br>现在时间: $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("错误","本调查项目你已投票了!<br>时间:$ipdata"); }
		}
	}
####新参投者
        if((!$l_total)&&($l_six ne "no")&&($l_top10 ne "3")){
	   if($cookid){ &error("错误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("错误","本主题不允许新参投者加入");}
	
	   }

	}
####
	#多
   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("错误","请选齐投票项目$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("错误","请选齐投票主题,你只选<b> @SIJ </b>主题");}
		}
		###
	}
	$lockerror = &LockFile("$pollfilt/name.cgi");
	&error("错误","服务器占用中,请稍后再试") 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("错误","请选项目投票");}
		$bb=@SINGLE;
		if(($bb > $pmax) || ($bb < $pmin)){&error("错误","选定项目不能多于$pmax项,少于$pmin项<br> 现在你的选项是 $bb ");}

		$lockerror = &LockFile("$pollfilt/name.cgi");
		&error("错误","服务器占用中,请稍后再试") 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("错误","请选项目投票");}
		$lockerror = &LockFile("$pollfilt/name.cgi");
		&error("错误","服务器占用中,请稍后再试") 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>如不能进入,请点击这里</a>";
if(($l_mail)&&($CONFIG{'sendmail'})){&POST_mail;}
 exit;
}
#####-看
sub show {
	if($FORM{'sub_me'}==1){ $regok="1"; $pollname="&nbsp;&nbsp;(谢谢您投出宝贵的一票!)";}

	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错误","请先保存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("错误","请先投票"); }
		}
	open(CPWD,"$pollfilt/$num.cgi");
	@CPWD=<CPWD>;
	$cpsize=@CPWD;
	close(CPWD);
	open(CPWDRS,"$pollfilt/name.cgi");
	@sizes=<CPWDRS>;
	$sizes=@sizes;
	close(CPWDS);
&Header("投票结果");
&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  ->> 结果:<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="发表意见建议" 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="关注本次调查结果" src="$CONFIG{'img_url'}/email.gif"  border=0 width="16" height="16">关注</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>项 目<td align=center width=200 background="$imgurl/phb.gif">图 示<td align=center width=40>票数<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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -