?? spoll.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"){ ®}
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> 框內是一行一個調查主題與該主題的調查項目,與單主題填寫是不同。
<P>問:建立的多主題調查,投票后主題和項目不能顯示調查結果。
<br>答:這不是BUG,只是系統讀出結果打印方式不同,其中有主題沒有投票,所
<br> 以建立時要在《每主題必選》打勾,或待所有主題都有投票后才能正常
<P>問:如何改變鏈接代碼的彈出窗口大小。
<br> <script src=http://****.cgi?id=你的ID&open=調查號&width=寬&height=高></script>
<br> 只要修改 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">★☆□排行榜 <INPUT type=radio value='2' name='top10' title='評分以后不能再更改'"; if($l_top10=="2"){print" checked";}
print">分數排行榜 <INPUT type=radio value='3' name='top10' title='不使用'"; if($l_top10=="3"){print" checked";}
print qq~>不用排行榜 <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 " <INPUT type='radio' value='2' name='deltop10' title='重新記錄參投者名單和排行'><A href=# title='如要清空,必需“充許新參投者加入”'>清空本題排行名單!</a>";
print " <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="是"> 注意:<TD>主題名和調查項目要用“==”分隔,各個項目之間要用“|”隔。否則不能識別
</TBODY></TABLE><TR><TD width="30%"><TD><p> <BR><INPUT type=submit value="提 交"> <INPUT type=reset value="重寫">
EOF
if($oldnum){ print qq~ <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/>/>/g;
$votename=~ s/</</g;
$votename=~ s/"/"/g;
$votename=~ s/[\n\r\`\~\^\\\/\
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -