?? guest.cgi
字號:
#!/usr/bin/perl
#------------------------------------------------------#
# 本程序為Yuzi工作室提供 #
# Yuzi論壇3000(BBS3000)v4.00 #
#------------------------------------------------------#
$cgipa="."; # CGI程序文件的絕對路徑
######################
## 以下部分不需修改 ##
######################
require "$cgipa/setup.cgi";
&GetCookies;
if($Cookies{username}){open(PSD,"$filepath/yhzl/$Cookies{username}.cgi")||&errorview("對不起,此用戶名還沒有注冊!");$liness=<PSD>;close(PSD);($password)=split(/\t/,$liness);if($password ne $Cookies{password}){&errorview("對不起,您的密碼錯誤!");}}
if($Cookies{username} eq ""){print "Content-type: text/html\n\n<SCRIPT>document.location='login.cgi?url=guest.cgi'</SCRIPT>";exit;}
##########
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value=~s/\t/ /g;
$value=~s/>/>/g;
$value=~s/</</g;
$value=~s/\n/\<br\>/g;
if($FORM{$name}){$FORM{$name}=$FORM{$name}.",".$value;}else{$FORM{$name}=$value;}
}
$FORM{'Comment'} =~s/\|/\s/g;
$FORM{'guest'}=~s/\.\.//g;
##########
$action=$FORM{'action'};
$page=$FORM{'page'};
$guest=$FORM{'guest'};
$Comment=$FORM{'Comment'};
$remove=$FORM{'remove'};
$records=$FORM{'records'};
if($action eq "add_form"){&add_form;exit;}
if($action eq "add_guest"){&add_guest;exit;}
if($action eq "clean"){&clean;exit;}
if($action eq "remove"){&remove;exit;}
open(PSD,"$filepath/guest/1$Cookies{username}.cgi");
@lines=<PSD>;
close(PSD);
$size=@lines;
if($page eq ""){$page=1;}
$pageend=$page*20;
$pagestar=$pageend-19;
if($pageend > $size){$pageend=$size};
&css;
print <<EOF;
<TITLE>$Cookies{username}的私人留言本</TITLE><center><table width="500"><tr><td align="center"><b><font face="華文彩云" color=$bgcolor0 size="+3">$Cookies{username}的私人留言本</font><br><br>
</b></font></td></tr><tr><td align="center"></font></td></tr></table><SCRIPT>
function cookie_clean(){
if (confirm("該項操作要清空您私人留言簿上的所有留言,您確定要清除嗎?")){
return true;
}
return false;
}function CheckAll(form){for (var i=0;i<form.elements.length;i++){var e = form.elements[i];if (e.name != 'chkall')e.checked = form.chkall.checked;}}
</SCRIPT><table border=0 width=500><tr><td><FONT color=8000ff>總共有<FONT color=ff0000> $size </FONT>條留言 當(dāng)前瀏覽第 <FONT color=ff0000>$pagestar - $pageend </FONT>條留言</FONT></td>
<td><a href=guest.cgi?action=clean onclick="return cookie_clean()">清空留言簿</td></tr></table><form action="guest.cgi"><input type=hidden name="action" value="remove">
EOF
$pages=$page-1;
$pages=$page*20-20;
for($i=$pages; $i<$pages+20; $i++) {
$line=@lines[$i];
if($line ne ""){
($no,$who,$myname,$sjian,$nr)=split(/\|/,$line);
print <<EOF;
<TABLE cellSpacing=1 cellPadding=4 border=0 width=500><TR bgColor=$bgcolor0><TD vAlign=center width=100><FONT color=$bgcolor4>留言者</FONT> </TD>
<TD vAlign=center colspan=2><FONT color=$bgcolor4> 留言內(nèi)容</FONT></TD></TR>
<TR bgColor=$bgcolor2><TD vAlign=top width=100 rowSpan=2><FONT color=blue><B>$who</B></FONT></TD>
<TD vAlign=top colspan=2><TABLE cellSpacing=0 cellPadding=0 width=100% border=0><TBODY><TR><TD><P align=left> <IMG height=16 alt=回復(fù)該留言 src=$imagurl/lytu.gif border=0> <FONT color=0000ff>留言于: $sjian</FONT></P></TD>
<TD width=25%><P align=right> <input type="checkbox" name="records" value="$no"><a href="guest.cgi?action=remove&records=$no"><IMG height=16 alt=刪除該留言 src=$imagurl/del.gif border=0></a></P></TD></TR></TBODY></TABLE>
<HR>$nr </TD><TR bgColor=$bgcolor2><TD vAlign=bottom> <IMG height=16 alt=回復(fù)該留言 src=$imagurl/hf.gif border=0>
<a href="guest.cgi?action=add_form&guest=$who">回復(fù)該留言</a></TD><TD vAlign=bottom><IMG height=16 alt="查看 $who 的個人資料" src=$imagurl/pro.gif border=0> <a href=# onclick=javascript:open('yhreg.cgi?menu=viewuser&username=$who','','width=630,resizable,scrollbars')>查看 $who 的個人資料</a></TD></TABLE></BODY>
EOF
}}
print <<EOF;
<SCRIPT>
function cookie_reset(){
if (confirm("該項操作要清除您系統(tǒng)上的COOKIE,您確定要清除嗎?")){
return true;
}
return false;
}
</SCRIPT><table border=0 width=500><tr><td><a href="cookie.cgi" onclick="return cookie_reset()">點這里清除cookies</a></td><td>
EOF
$j=$size;while ($j>0) {$j=$j-20;}$ii++;
$j=$size;while ($j>0) {print "<a href=$cgiurl?page=$ii>" if ($page != $ii);
print "[$ii]</a>";$j=$j-20;$ii++;}
print <<EOF;
</td><td align=right><input type=checkbox name=chkall value=on onclick=CheckAll(this.form)> <input type="submit" name="Submit" value="刪除所選留言"></form></td></tr></table>
<font color=C0C0C0>Powered by <a href=http://www.yuzi.net target=_blank><font color=C0C0C0>Yuzi Studios</a> © 2001<br>Yuzi Bulletin Board Version<font style=font-size:7pt><sup><b>TM</b></sup></font> $ver</HTML>
EOF
exit;
sub add_form{
if($Cookies{username} eq $guest){&errorview("不能自己給自己留言!");}
&css;
print <<EOF;
<BR><center><title>給 $guest 留言</title><SCRIPT>
var i=0;
function check(theForm) {
if(theForm.Comment.value == "" ) {
alert("您的留言內(nèi)容不能為空!");
return false;
}
if (theForm.Comment.value.length > 1000){
alert("對不起,您的留言不能超過 1000 個字節(jié)!");
return false;
}
i++;
if (i>1) {alert('留言正在發(fā)出,請耐心等待!'); return false;}
}
function confirm_reset(){
if (confirm("該項操作要清除全部的內(nèi)容,您確定要清除嗎?")){
return true;
}
return false;
}
function presskey(eventobject){if(event.ctrlKey && window.event.keyCode==13){this.document.form.submit();}}
</SCRIPT><center><form name=form action="guest.cgi" method="post"><input type="hidden" name="guest" value=$guest>
<input type="hidden" name="action" value="add_guest"><TABLE cellSpacing=1 cellPadding=4 width="70%" border=0><TBODY><tr><TD vAlign=top align="center"><font face style=font-size:9pt>給 $guest 留言</font> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="70%" border=0><TBODY><tr><TD><TABLE cellSpacing=1 cellPadding=4 border=0 width="500"><TBODY><tr bgColor=$bgcolor0><td></td><TD vAlign=top><FONT color=$bgcolor4>注意:以下 * 星號標(biāo)出的項目必需填寫.
</FONT></TD></TR><tr bgColor=$bgcolor2><TD vAlign=top align=middle><FONT style=font-size:9pt>* 您的留言:</FONT>
</TD><TD><TEXTAREA name=Comment rows=6 cols=40 onkeydown=presskey()></TEXTAREA> </TD></TR><tr bgColor=$bgcolor1><TD vAlign=top> </TD>
<TD>注意:目前這個留言簿的 HTML 功能是被不允許的。</TD></TR></TBODY></TABLE><CENTER></CENTER></TD></TR></TBODY></TABLE>
<CENTER><P><INPUT onclick="return check(this.form)" type=submit value=" 確 定 留 言 " name=SUBMIT>
<INPUT onclick="return confirm_reset()" type=reset value=" 清 除 內(nèi) 容 " name=RESET>
</CENTER></FORM></center><SCRIPT>
function cookie_reset(){
if (confirm("該項操作要清除您系統(tǒng)上的COOKIE,您確定要清除嗎?")){
return true;
}
return false;
}
</SCRIPT><table border=0 width=500><tr><td>所有時間均為<FONT color=blue>北京時間</FONT></td><td align=right><a href="cookie.cgi" onclick="return cookie_reset()">點這里清除cookies</a></td></tr><tr><td colspan="2" align="center">
<font color=C0C0C0>Powered by <a href=http://www.yuzi.net target=_blank><font color=C0C0C0>Yuzi Studios</a> © 2001<br>Yuzi Bulletin Board Version<font style=font-size:7pt><sup><b>TM</b></sup></font> $ver
</b></td></tr></table></HTML>
EOF
exit;
}
sub add_guest{
unless( -e "$filepath/yhzl/$guest.cgi"){&errorview("系統(tǒng)中沒有此用戶的資料!");}
if(length($Comment) > 1000){&errorview("您的訊息不能大于1000個字符!");}
open(TITLES,"$filepath/guest/1$Cookies{username}.cgi");
@hastitles=<TITLES>;
close(TITLES);
open(TITLES,">$filepath/guest/1$Cookies{username}.cgi");
print TITLES "$ftime|$Cookies{username}|$guest|$thistime|<font color=C0C0C0>$Comment(收件人:$guest)</font>\n";
print TITLES @hastitles[0..98];
close(TITLES);
open(TITLES,"$filepath/guest/1$guest.cgi");
@hastitles=<TITLES>;
close(TITLES);
$tollys=@hastitles;
open(TITLES,">$filepath/guest/1$guest.cgi");
print TITLES "$ftime|$Cookies{username}|$guest|$thistime|$Comment\n";
print TITLES @hastitles;
close(TITLES);
open(NUMBER,"$filepath/guest/2$guest.cgi");
$NUMBER=<NUMBER>;
close(NUMBER);
($lys,$oldlys,$money,$charm)=split(/\t/,$NUMBER);
$lys++;
open(NUMBERR,">$filepath/guest/2$guest.cgi");
print NUMBERR "$lys"."\t"."$tollys"."\t"."$money"."\t"."$charm";
close(NUMBERR);
print "Content-type: text/html\n\n";
if($page eq ""){print "<script>close()</script>留言成功!";
}else{
print "<script>window.close();opener.window.close();</script>";
}
exit;
}
sub clean {
open(LINKSDATA,">$filepath/guest/1$Cookies{username}.cgi") ;
close(LINKSDATA);
chmod(0666,"$filepath/guest/1$Cookies{username}.cgi");
open(NUMBER,"$filepath/guest/2$Cookies{username}.cgi");
$NUMBER=<NUMBER>;
close(NUMBER);
($lys,$oldlys,$money,$charm)=split(/\t/,$NUMBER);
open(NUMBERR,">$filepath/guest/2$Cookies{username}.cgi");
print NUMBERR "0\t0\t"."$money"."\t"."$charm";
close(NUMBERR);
&css;
print <<EOF;
<META HTTP-EQUIV=Refresh CONTENT="0;url=guest.cgi">
EOF
}
sub remove{
@records = split(/\,/,$FORM{'records'});
foreach $records (@records){
open(TITLES5,"$filepath/guest/1$Cookies{username}.cgi");
@hastitles5=<TITLES5>;
close(TITLES5);
open(TITLES5,">$filepath/guest/1$Cookies{username}.cgi");
foreach $m5 (@hastitles5){
$m5=~s/\n//g;
if($m5 ne ""){
($rthistime5)=split(/\|/,$m5);
if($rthistime5 ne $records){
print TITLES5 $m5."\n";
}else{$num++;}
}
}
close(TITLES5);
}
open(NUMBER,"$filepath/guest/2$Cookies{username}.cgi");
$NUMBER=<NUMBER>;
close(NUMBER);
($lys,$oldlys,$money,$charm)=split(/\t/,$NUMBER);
$oldlys=$oldlys-$num;
open(NUMBERR,">$filepath/guest/2$Cookies{username}.cgi");
print NUMBERR "$lys"."\t"."$oldlys"."\t"."$money"."\t"."$charm";
close(NUMBERR);
print "Content-type: text/html\n\n<meta HTTP-EQUIV=REFRESH CONTENT=0;URL=guest.cgi>";
exit;
}
######################### END OF SCRIPT #########################
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -