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

📄 spoll.cgi

📁 1。超强文件读写锁定
💻 CGI
字号:
#!/usr/bin/perl
$dirname=&mypath;
##################################################################
##                                                              ##
## 本版使用于WINDOWS和Unix/Linux等操作系统版                    ## 
##################################################################
require "$dirname/setup2002.pl";
require "$dirname/svote.lib";
&read_form;  
&GetCookies;
&Ursid;
if(!$Cookies{$Cookname}){ &error("错误","请先登陆");}
if($urspass ne $password){ &error("错误","你没权管理$id账号密码有错?");}
$iddir="$usrpwdfile";
$num=$FORM{'num'};
$edit=$FORM{'edit'};

if($action eq "new"){ $subj="创建新的调查:"; &poll;}
elsif($action eq "code"){ &code;}
elsif($action eq "xiu"){&xiu;}
elsif($action eq "edit"){ $subj="编辑现有的调查:"; $oldnum="<input type=hidden name=\"num\"  value=\"$num\">"; &poll;}
elsif($action eq "dellist"){ &dellist;}
elsif($action eq "reg"){ &reg;}
elsif($action eq "newreg"){ &newreg;}
elsif($action eq "show"){ &show;}
elsif($action eq "cksix"){ &ck_six;}
elsif($action eq "zlsr"){ &zlsr_six;}
elsif($action eq "topedit"){ &Topedit;}
elsif($action eq "deltoplist"){&deltoplist;}
elsif($action eq "edittoplist"){&edittoplist;}
elsif($action eq "index"){&index;}
elsif($action eq "newindex"){&newindex;}
elsif($FORM{'add'}){&editid;}

else{ &admin;}
exit;
###
sub admin {
&Header;
&Link;
print<<EOF;
<TABLE height=1 cellSpacing=1 cellPadding=2 width="100%" border=0>
<TR><TD width="100%" bgcolor=#FFD7C>成功登陆,现在你的管理身份已记入在本机的Cookie!
<TR><TD width="100%" bgColor=#efefef height=420>
点击左边链接,可进行相应管理
<P>问:我不能建立多主题调查。 
<br>答:是否给站长关闭此功能或写入的格式不对。 
<P>问:建立的多主题调查,项目不能正常显示。 
<br>答:你是否有用“==”分隔主题和项目,项目与项目间用“|”分隔。填写 
<br>&nbsp;&nbsp;&nbsp;&nbsp;框内是一行一个调查主题与该主题的调查项目,与单主题填写是不同。 
<P>问:建立的多主题调查,投票后主题和项目不能显示调查结果。 
<br>答:这不是BUG,只是系统读出结果打印方式不同,其中有主题没有投票,所
<br>&nbsp;&nbsp;&nbsp;&nbsp;以建立时要在《每主题必选》打勾,或待所有主题都有投票后才能正常 
<P>问:如何改变链接代码的弹出窗口大小。 
<br>&nbsp;&nbsp;&nbsp;&lt;script src=http://****.cgi?id=你的ID&open=调查号&width=宽&height=高&gt;&lt;/script&gt;
<br>&nbsp;&nbsp;&nbsp;&nbsp;只要修改 width=宽 和 height=高 你要的窗口大小数字就好
<P>如要建立多主题调查,请勿超多,以防服务器负荷,数据丢失!!
<P>在公共场所进入此页面,退出管理时请注意点击《退出登陆》清空COOKIE。
$ENV{'SERVER_NAME'}
</TABLE>
EOF
&html;
exit;
}
###
sub poll {
$years=$year+1;
$mons=$mon;
$mdays=$mday;
$hours=20;
$mins="00";
$l_lockid=checked;
$pmax=5;
$pmin=1;

 if($oldnum){
	unless (-e "$iddir/$num.cgi"){ &error("错误","调查项目不存在!");}
	open(NUMBER,"$iddir/$num.cgi")|| &error("错误","编辑项目不能打开!");
	$NUM=<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/,$NUM);
	open(WWWBOARD,"$iddir/$num/$num.cgi")|| &error("创建错误","编辑项目不能打开!");
	@WWWBOARD=<WWWBOARD>;
	close(WWWBOARD);
 }
 else{ 
	$l_six="no";
	$bzvote="0";
	$l_top10="3";
	$l_newtop="checked";
	opendir(MEMBERDIR, "$iddir");
	@hastitles=readdir(MEMBERDIR);
	closedir(MEMBERDIR);
		foreach $m(@hastitles){
			if($m !~/\./){ $bzvote++;}
		}
	if($bzvote >= $CONFIG{'tpnum'}){&error("错误","调查主题已有$CONFIG{'tpnum'}条,请先删除无用调查项"); }
  }
 
&Header;
&Link;
print<<EOF;
<SCRIPT language=javascript>
<!--
if (parent.frames.length > 0) {
parent.location.href = location.href;
}
function login_onsubmit() {
if (document.FORM.votename.value==""){alert("必须为调查取一个名称!");  return false;}
if (document.FORM.mode.checked == true){
pmaxLength=document.FORM.pmax.value.length;
if (pmaxLength < 1){alert("必须限定每人最多选项!");  return false;}
pminLength=document.FORM.pmin.value.length;
if (pminLength < 1){alert("必须限定每人至少选项!");  return false;}
}
bodyLength=document.FORM.body.value.length;
if(bodyLength<2){alert("请填写投票项目!");return false;}
}

function showadv(){
if (document.FORM.topmode.checked == true) {
adv.style.display = "";
advance.innerText="关闭项目评分排行详细设置";
}else{
adv.style.display = "none";
advance.innerText="打开项目评分排行详细设置"
}
}
function showadd(){
if (document.FORM.mode.checked == true) {add.style.display = "";}
else{add.style.display = "none";}
}
function showads(){
if (document.FORM.total.checked == true) {ads.style.display = "";}
else{ads.style.display = "none";}
}
// --></SCRIPT>
</HEAD>
<FORM language=javascript name=FORM onsubmit="return login_onsubmit()" action="$CGI{'poll'}" method=post><input type=hidden name="id" value="$id"><input type=hidden name="action" value="code">$oldnum
<TABLE cellSpacing=1 cellPadding=2 width="100%" border=0><TBODY><TR><TD width="100%" colSpan=2 bgcolor=#FFD7C>$subj (填写内容不要加入特殊字符,系统可能对其过滤)<TR><TD align=right width="30%" bgColor=#efefef>本次调查的名称:<TD width="76%"><INPUT class=form size=55 name=votename value="$l_num" maxlength=40>
EOF
print qq~
<TR><TD align=right width="30%" bgColor=#efefef>
<TD width="76%" rowspan="10"><TEXTAREA onkeydown=ctlent() onmouseover=this.focus() name="body" rows=14 cols=60 title="写入投票项目" class=form>~;
 if($oldnum){
	open(WWWBOARD,"$iddir/$num/$num.cgi")|| &error("创建错误","编辑项目不能打开!");
	@WWWBOARD=<WWWBOARD>;
		foreach $main(@WWWBOARD) {  
		($padd,$idname)=split(/\t/,$main);
		print $idname;
		close(WWWBOARD);
		}
  }
print<<EOF;
</TEXTAREA><br>
<select name=year class=form><option value=$years>$years<option value=2003>2003<option value=2004>2004<option value=2005>2005<option value=2006>2006</select>年
<select name=mon class=form><option value=$mons>$mons<option value=01>01<option value=02>02<option value=03>03<option value=04>04<option value=05>05<option value=06>06<option value=07>07<option value=08>08<option value=09>09<option value=10>10<option value=11>11<option value=12>12</select>月
<select name=day class=form><option value=$mdays>$mdays<option value=01>01<option value=02>02<option value=03>03<option value=04>04<option value=05>05<option value=06>06<option value=07>07<option value=08>08<option value=09>09<option value=10>10<option value=11>11<option value=12>12<option value=13>13<option value=14>14<option value=15>15<option value=16>16<option value=17>17<option value=18>18<option value=19>19<option value=20>20<option value=21>21<option value=22>22<option value=23>23<option value=24>24<option value=25>25<option value=26>26<option value=27>27<option value=28>28<option value=29>29<option value=30>30<option value=31>31</select>日
<select name=hour class=form><option value=$hours>$hours<option value=01>01<option value=02>02<option value=03>03<option value=04>04<option value=05>05<option value=06>06<option value=07>07<option value=08>08<option value=09>09<option value=10>10<option value=11>11<option value=12>12<option value=13>13<option value=14>14<option value=15>15<option value=16>16<option value=17>17<option value=18>18<option value=19>19<option value=20>20<option value=21>21<option value=22>22<option value=23>23<option value=00>0</select>时
<select name=min class=form><option value=$mins>$mins<option value=00>00<option value=05>05<option value=10>10<option value=15>15<option value=20>20<option value=25>25<option value=30>30<option value=35>35<option value=40>40<option value=45>45<option value=50>50<option value=55>55</select>分
<TR><TD align=right width="30%" bgColor=#efefef>一行一个投票项目,最多$CONFIG{'tpsl'}项<TR><TD align=right width="30%" bgColor=#efefef>回车换行,空行(空格)自动作废<TR><TD align=right width="30%" bgColor=#efefef>是否限制重复投票<INPUT type=checkbox value="checked" name="lockid" $l_lockid>
<TR><TD align=right width="30%" bgColor=#efefef>此投票是否允许多选<INPUT id=addcheck name=mode type=checkbox value=checked onclick=showadd() $l_mode title="打勾为多选">
<TABLE id=add style="DISPLAY: none;BORDER-RIGHT: 1px inset; BORDER-TOP: 1px inset; BORDER-LEFT: 1px inset; BORDER-BOTTOM: 1px inset" border=0><TBODY>
<TR><TD>(多主题调查限定无效)<br>限定每人最多选<input type=text name=pmax size=2 value="$pmax" maxlength=2 title="可填入1-$CONFIG{'tpsl'}"  class=form>项<TR><TD class=bbc>限定每人至少选<input type=text name=pmin size=2 value="$pmin" maxlength=2 title="可填入1-$CONFIG{'tpsl'}"  class=form>项</TBODY></TABLE>
<TR><TD align=right width="30%" bgColor=#efefef>注册者才能查看结果<INPUT type=checkbox value="checked" name="regk" $l_regk title="是">
<TR><TD align=right width="30%" bgColor=#efefef>投票后才可查看结果<INPUT type=checkbox value="checked" name="look" $l_look title="是">
<TR><TD align=right width="30%" bgColor=#efefef>允许发表意见评论<INPUT type=checkbox value="checked" name="ly" $l_ly title="是">
<TR><TD align=right width="30%" bgColor=#efefef>
EOF
 if($CONFIG{'sendmail'}){print qq~允许关注调查结果<INPUT type=checkbox value="checked" name="Tomail" $l_mail title="是">~;}
 if($l_six ne "no"){ $ggg=" checked"; $none="";}  else{ $ggg=""; $none="none";}
print<<EOF;
<TR><TD align=right width="30%" bgColor=#efefef valign="bottom">截止投票时间(默认一年):
<TR><TD width="100%" colSpan=2><INPUT id=advcheck name="topmode" type=checkbox value="checked" onclick="showadv()"$ggg>
<LABEL for=advcheck><span id="advance">打开项目评分排行详细设置</span></LABEL>(不支持多主题选票,如 "不计分" 时填写无效) 详见[输入评分资料]
<TABLE id=adv style="DISPLAY: $none;BORDER-RIGHT: 1px inset; BORDER-TOP: 0px inset; BORDER-LEFT: 0px inset; BORDER-BOTTOM: 0px inset" border=0 cellSpacing=1 cellPadding=1><TBODY>
<TR bgColor=#8CC6FF><TD align=right width="30%">①评分项目属性(多主题无效):<TD width="76%">
第<input type=text name=qh size=3 value="$l_qh" maxlength=10 title="期号要与[评分资料]的期号相同" class=form>期
EOF
print"<INPUT type=radio name='six' value='t'"; if($l_six eq "t"){print" checked";}
print">特码 <INPUT type=radio name='six' value='tw'"; if($l_six eq "tw"){print" checked";}
print">特尾 <INPUT type=radio name='six' value='p'";  if($l_six eq "p"){print" checked";}
print">平码 <INPUT type=radio name='six' value='pw'"; if($l_six eq "pw"){print" checked";}
print">平尾 <INPUT type=radio name='six' value='k'";  if($l_six eq "k"){print" checked";}
print"><A href=# title='会过滤掉项目中的p/t/k小写字符'>其它</a> <INPUT type=radio name='six' value='no'"; if($l_six eq "no"){print" checked";}
print qq~>不评分<TR  bgColor=#8CC6FF><TD align=right width="30%">②项目评分方法(不评分免填):<TD width="76%">每项<input type=text name=pfs size=2 value="$l_pfs" maxlength=3 title="要减分加‘-’号"  class=form>分  ~;
print"<INPUT type=radio name='jfs' value='1'"; if($l_jfs==1){print" checked";}
print"><A href=# title='每选中一项得一次项目分,选错免扣分'>免扣累加</a> <INPUT type=radio name='jfs' value='2'";  if($l_jfs==2){print" checked";}
print"><A href=# title='只要选中,只得一次项目分,选错免扣分'>免扣不累</a> <INPUT type=radio name='jfs' value='4'"; if($l_jfs==4){print" checked";}
print"><A href=# title='选中一项得一次项目分,选错一项减去一次项目分'>相抵累分</a> <INPUT type=radio name='jfs' value='3'"; if($l_jfs==3){print" checked";}
print"><A href=# title='项数X项目分=总分,只要选中得总分,没中要扣总分'>要扣项数分</a>";
print qq~<TR bgColor=#8CC6FF><TD align=right width="30%"><A href=# title='只供本主题使用,评分以后,排行榜属性不能再更改!!'>③排行榜属性(如不评分免填):</a><TD width="76%">~;
print"<INPUT type=radio value='1'  name='top10' title='评分以后不能再更改'"; if($l_top10=="1"){print" checked";}
print">★☆□排行榜&nbsp;&nbsp;<INPUT type=radio value='2' name='top10' title='评分以后不能再更改'"; if($l_top10=="2"){print" checked";}
print">分数排行榜&nbsp;&nbsp;<INPUT type=radio value='3' name='top10' title='不使用'"; if($l_top10=="3"){print" checked";}
print qq~>不用排行榜&nbsp;&nbsp;<INPUT type=checkbox value="checked" name="newtop" $l_newtop title="是,不评分无效">充许新参投者加入~;
	if(($l_top10==1)||($l_top10==2)){
		print "<TR bgColor=#8CC6FF><TD align=right width=30%>(排行名单清除后无法还原)</TD><TD width=70%><INPUT type='radio' value='1' name='deltop10' title='重新排行,原有本题参投者可续继参加'>清除本题排行数据!";
		print "&nbsp; <INPUT type='radio' value='2' name='deltop10' title='重新记录参投者名单和排行'><A href=# title='如要清空,必需“充许新参投者加入”'>清空本题排行名单!</a>";
		print "&nbsp; <INPUT type='radio' value='3' name='deltop10'>不 清 除。";
	}
print<<EOF;
</TBODY></TABLE><TR><TD width="100%" colSpan=2><INPUT id=adscheck type=checkbox value=checked name="total" $l_total title="是" onclick=showads()>
项目为多主题选票(每次最多只能建立 $CONFIG{'dtsl'} 个主题,每个主题最多调查 $CONFIG{'dtxm'} 个项目)
<TABLE id=ads style="DISPLAY: none;BORDER-RIGHT: 1px inset; BORDER-TOP: 0px inset; BORDER-LEFT: 0px inset; BORDER-BOTTOM: 0px inset" border=0 cellSpacing=1 cellPadding=1><TBODY>
<TR bgColor=#ecffff><TD align=right width="30%">多主题调查项目填写格式为:<TD class=pnqk>调查主题名<font color=red>==</font>调查项目1<font color=red>|</font>调查项目2<font color=red>|</font>调查项目3<font color=red>|</font>调查项目…
<TR bgColor=#ecffff><TD align=right width="30%">每主题必选<INPUT type=checkbox value="checked" name="neat" checked title="是">&nbsp;&nbsp; 注意:<TD>主题名和调查项目要用“==”分隔,各个项目之间要用“|”隔。否则不能识别
</TBODY></TABLE><TR><TD width="30%"><TD><p>&nbsp;<BR><INPUT type=submit value="提 交">&nbsp;&nbsp;&nbsp;&nbsp;<INPUT type=reset value="重写">
EOF
if($oldnum){ print qq~&nbsp;&nbsp;&nbsp;<INPUT type='checkbox' value='ON' name='clear' title='重新统计本主题投票数据'><FONT color=#ff0000><B>清除投票结果!</B>(清除后无法还原,请小心)</FONT>~;}
print qq~</TBODY></TABLE></form>~;
&html;
exit;
}

##
sub code {
		$votename=$FORM{'votename'};
		$votename=~ s/>/&gt;/g;
		$votename=~ s/</&lt;/g;
		$votename=~ s/"/&quot;/g;
		$votename=~ s/[\n\r\`\~\^\\\/\

⌨️ 快捷键说明

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