?? sguest.cgi
字號:
#!/usr/bin/perl
$dirname=&mypath;
##################################################################
## ##
## 本版使用于WINDOWS和Unix/Linux等操作系統版 ##
##################################################################
require "$dirname/setup2002.pl";
require "$dirname/svote.lib";
&read_form;
&GetCookies;
$num=$FORM{'num'};
$post=$FORM{'post'};
$guest=$FORM{'guest'};
$look=$FORM{'look'};
$looks=$FORM{'Looks'};
$iddir="$dirname/$FILE{'poll'}/$id";
unless(-e "$iddir"){ &error("錯誤","ID賬號不存在");}
if($cookid){ &error("錯誤","請先注冊登陸");}
if($num){#}
elsif($guest){&guest;}
elsif($look){&look;}
elsif($looks){&looks;}
else {
unless (-e "$iddir/$num"){ &error("錯誤","本調查內容已不存在!");}
&Header("發表評語","發表評語");
print qq~
<script Language='JavaScript'>
function formCheck(){
nameLength=document.FORM.name.value.length;
if(nameLength<2){alert("請輸入你的名字!");return false;}
bodyLength=document.FORM.body.value.length;
if(bodyLength<2){alert("請輸入內容!");return false;}
document.FORM.submit.disabled = true;
return true;
}
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0,maxlimit);
else
countfield.value = maxlimit - field.value.length;
}
</script>
<center><p><FORM METHOD=POST name="FORM" onSubmit='return formCheck()' ACTION="$CGI{'guest'}">
<input type=hidden name="id" value="$id"><input type=hidden name="num" value="$post">
<TABLE cellSpacing=1 cellPadding=1 bgColor=#008080 border=0 width="300">
<tr><td height="22" bgcolor=#FFD7C>你的名字:<input name="name" size="15" maxlength="10" class=form value="$Cookies{$Cookname}">
電郵:<input name="email" size="15" maxlength="30" class=form>
<tr><td height="22" bgcolor=#FFD7C>主頁名稱:<input name="home" size="15" maxlength="10" class=form value="$Cookies{$Cookname}">
地址:<input name="url" size="15" maxlength="50" class=form value="http://">
<tr><td align=center><TEXTAREA NAME="body" ROWS=9 COLS=45 class=form onKeyDown="textCounter(this.form.body,this.form.remLen,100;" onKeyUp="textCounter(this.form.body,this.form.remLen,100);"></TEXTAREA>
<p>內容不能多于<input readonly type="text" name="remLen" size="3" value="100" class="form">字 <INPUT TYPE=SUBMIT name=submit VALUE="發 布" accessKey=S tabIndex=4 class=form1> <input type=reset value="重寫" class=form1>
</TABLE></FORM>~;
exit;
}
##
sub num {
$body = $FORM{'body'};
$body = &Usecheck("$body");
$home = $FORM{'home'};
$home = &Usecheck("$home");
if($FORM{'email'}){
$email=$FORM{'email'};
$email =~ s/\s//g;
$email=~ tr/A-Z/a-z/;
if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(,)/ || $email !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/) { &error("錯誤","$email郵箱地址無效");}
}
if($FORM{'url'} =~/\s*(http|https|ftp|rtsp):\/\/(\S+?)\s*/){$url="$FORM{'url'}";}
$ursname = $FORM{'name'};
$ursname = &Usecheck("$username");
if($ursname eq ""){&error("錯誤","沒填寫名字,或有空字符?");}
if($body eq ""){&error("錯誤","沒填寫內容,或有空字符?");}
if(length($body) > 100){ &error("錯誤","內容不能大于100字節");}
$lockerror = &LockFile("$iddir/$num.pl");
&error("錯誤","服務器占用中,請稍后再試") if($lockerror);
open(CCOO,"$iddir/$num.pl");
@TPRP = <CCOO>;
close(CCOO);
open(NUM2,">$iddir/$num.pl");
print NUM2 "$ursname\t$body\t$url\t$home\t$email\t$year-$mon-$mday $hour:$min\n";
print NUM2 @TPRP;
close(NUM2);
&UnlockFile("$iddir/$num.pl");
if($FORM{'back'}){
print "Content-type: text/html\n";
print "Location:$CGI{'guest'}?id=$id&guest=$num\n\n";
exit;
}
&Header;
print qq~
<script language="JavaScript"><!--
function clock(){
i=i-1
document.title="窗口將在"+i+"秒后自動關閉";
if(i>0)setTimeout("clock();",1000);
else self.close();
}
var i=5
clock();
//--></script>~;
print "<p> <p align=center>信息已發送,謝謝您發表評論!</p></HTML>";
exit;
}
##
sub guest {
unless (-f "$iddir/$guest.pl"){ &error("錯誤","本調查內容已不存在!");}
&Header("評論");
&Top;
print qq~<p><center><TABLE border=1 borderColor=#ffffff borderColorDark=#ffffff borderColorLight=#000000 cellSpacing=0 bgColor="#46C2FF" width=700>
<tr><td valign="top"><TABLE border=0 width=550 cellSpacing=1><tr bgcolor=#FFD7C height=25><td align=center width=80>作 者<td align=center>內 容<td align=center width=100>時 間</td></tr>~;
open(guest,"$iddir/$guest.pl");
@guest=<guest>;
close(guest);
$end=@guest;
for ($i=0;$i<$end;$i++) {
$guest1=@guest[$i];
$guest1=~s/\n//g;
($gname,$gbody,$url,$home,$email,$gtim)=split(/\t/,$guest1);
print "<tr bgcolor=#DDEEFF><td align=center><A href=# title=\"主頁:$home\n電郵:$email\n地址:$url\">$gname</a><td>$gbody<td align=center>$gtim";
}
print qq~</TABLE><td><TABLE cellSpacing=1 cellPadding=1 border=0 width="100"><FORM METHOD=POST name="FORM" onSubmit='return formCheck()' ACTION="$CGI{'guest'}">
<input type=hidden name="id" value="$id"><input type=hidden name="num" value="$guest"><input type=hidden name="back" value="Y">
<tr><td height="22" bgcolor=#FFD7C>名字:<input name="name" size="16" maxlength="10" class=form value="$Cookies{$Cookname}">
<tr><td height="22" bgcolor=#FFD7C>電郵:<input name="email" size="16" maxlength="30" class=form>
<tr><td height="22" bgcolor=#FFD7C>主頁:<input name="home" size="16" maxlength="10" class=form value="$Cookies{$Cookname}">
<tr><td height="22" bgcolor=#FFD7C>地址:<input name="url" size="16" maxlength="50" class=form value="http://">
<tr><td align=center><TEXTAREA NAME="body" ROWS=9 COLS=20 class=form></TEXTAREA><p>
<INPUT TYPE=SUBMIT name=submit VALUE="發 布" accessKey=S tabIndex=4 class=form1> <input type=reset value="重寫" class=form1>
</TABLE></FORM></TABLE></p>~;
&Tailer;
exit;
}
#
sub look {
if(!$Cookies{$Cookname}){ &error("錯誤","不對非注冊者開放");}
if(!$CONFIG{'sendmail'}){ &error("錯誤","本站不開放本內容");}
unless (-e "$iddir/$look"){ &error("錯誤","本調查內容已不存在!");}
&Header("關注本主題調查");
print qq~<script Language='JavaScript'>
function formCheck(){
emailLength=document.FORM.email.value.length;
if(emailLength<2){alert("請輸入你的電郵!");return false;}
document.FORM.submit.disabled = true;
return true;
}
</script>
<center><p>關注本主題調查<p><FORM METHOD=POST name="FORM" onSubmit='return formCheck()' ACTION="$CGI{'guest'}">
<input type=hidden name="id" value="$id"><input type=hidden name="Looks" value="$look">
<TABLE cellSpacing=2 cellPadding=2 bgColor=#008080 border=0 width="310"><tr><td>
<TABLE cellSpacing=1 cellPadding=1 border=0 width="310">
<tr><td height="25" bgcolor=#FFD7C>你的郵箱:<input name="email" size="25" maxlength="40" class=form> 需能正常收郵件
<tr><td height="25" bgcolor=#FFD7C>如果本調查參與人數有
<select name=min class=form><option value=""> 0<option value=10> 10<option value=20> 20<option value=30> 30<option value=50> 50<option value=80> 80<option value=100>100
<option value=120>120<option value=150>150<option value=180>180<option value=200>200<option value=230>230<option value=250>250<option value=300>300
<option value=350>350<option value=400>400<option value=500>500<option value=600>600<option value=700>700<option value=800>800<option value=900>900</select>位時, 通知我 ~;
if($CONFIG{'regcook'}){print qq~<tr><td height="22" bgcolor=#FFD7C>如果本調查參與人姓名有<input name="From" size="10" maxlength="10" class=form title="不支持有空格的名字"> 時, 通知我~;}
print qq~<tr><td align=center bgcolor=#FFD7C><p>如有以上信息時,系統將發出E-MAIL到你郵箱。
<INPUT TYPE=SUBMIT name=submit VALUE="確 定" accessKey=S tabIndex=4 class=form1> <input type=reset value="重寫" class=form1>
</TABLE></TABLE></FORM>~;
exit;
}
##
sub looks {
$email=$FORM{'email'};
$email =~ s/\s//g;
$email=~ tr/A-Z/a-z/;
if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(,)/ || $email !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/) { &error("錯誤","$email郵箱地址無效");}
if($FORM{'From'}){
$ursname = $FORM{'From'};
$ursname = &Usecheck("$username");
if(!$ursname){ &error("錯誤","本系統不支持此名字,$FORM{'From'} 可能有非法字符");}
unless (-f "$dirname/$FILE{'ursid'}/$ursname.cgi"){ &error("錯誤","系統沒此 $ursname 注冊者");}
open(NUM,">>$iddir/$looks/$ursname.tmp");
print NUM "$email\n";
close(NUM);
}
if($FORM{'min'}){
$min = $FORM{'min'};
open(NUM1,">>$iddir/$looks/$min.pl");
print NUM1 "$email\n";
close(NUM1);
}
&Header;
print qq~
<script language="JavaScript"><!--
function clock(){
i=i-1
document.title="窗口將在"+i+"秒后自動關閉";
if(i>0)setTimeout("clock();",1000);
else self.close();
}
var i=5
clock();
//--></script>~;
print "<center><p> <p>你好,信息已加入系統中!</p></HTML>";
exit;
}
#
#####名
sub Usecheck {
my $UsePost= shift;
$UsePost=~ s/<([^>]|\n)*>//g;
$UsePost=~ s/[\{\}\<\>\~\$\^\`\/\\\#\|\ ]//g;
$UsePost=~ s/\ //g;
$UsePost=~ s/\&//g;
$UsePost=~ s/\&//g;
$UsePost=~ s/\+//g;
$UsePost=~ s/OPEN/O.pen/isg;
$UsePost=~ s/WINDOW/Win-dow/isg;
$UsePost=~ s/exit/E.xit/isg;
$UsePost=~ s/setup/S.etup/isg;
$UsePost=~ s/form/F.orm/isg;
$UsePost=~ s/javas/J.ava.s/isg;
$UsePost=~ s/value/V.al-ue/isg;
$UsePost=~ s/onmouse/O.nmou-se/isg;
$UsePost=~ s/cookie/C.ook-ie/isg;
$UsePost=~ s/document/D.ocume-nt/isg;
$UsePost=~ s/CONFIG/C.ONF-IG/isg;
$UsePost=~ s/file:/F.ile:/isg;
$UsePost=~ s/他媽的/☆※◇/isg;
$UsePost=~ s/法輪/○◇/isg;
return ($UsePost);
}
#
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 + -