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

📄 sguest.cgi

📁 1。超强文件读写锁定
💻 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">字&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=SUBMIT  name=submit  VALUE="发 布" accessKey=S tabIndex=4 class=form1>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<p>你好,信息已加入系统中!</p></HTML>";
exit;
}
#
#####名
sub Usecheck {
my $UsePost= shift;
$UsePost=~ s/<([^>]|\n)*>//g;
$UsePost=~ s/[\{\}\<\>\~\$\^\`\/\\\#\|\ ]//g;
$UsePost=~ s/\&nbsp;//g;
$UsePost=~ s/\&amp;//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 + -