📄 favorite.cgi
字号:
#!/usr/bin/perl
#------------------------------------------------------#
# 本程序为Yuzi工作室提供 #
# Yuzi论坛3000(BBS3000)v4.00 #
#------------------------------------------------------#
$cgipa="."; # CGI程序文件的绝对路径
$favmax=20; # 收藏的最大值,默认为20个
$favpage=15; # 每页显示的数目,默认为15条
######################
## 以下部分不需修改 ##
######################
require "$cgipa/setup.cgi";
&GetCookies;
$cgiurl= "favorite.cgi";
if($Cookies{username} eq ""){
print "Content-type: text/html\n\n<SCRIPT>document.location='login.cgi?url=favorite.cgi'</SCRIPT>";exit;
}
open(TITLESyu,"$filepath/yhzl/$Cookies{username}.cgi");
$ayu=<TITLESyu>;
close(TITLESyu);
($rpass)=split(/\t/,$ayu);
if($rpass ne $Cookies{password}){&errorview("您的密码错误!");}
##########
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;
$FORM{$name} = $value;
}
$menu=$FORM{'menu'};
$weblist=$FORM{'weblist'};
$weburl=$FORM{'weburl'};
$webname=$FORM{'webname'};
$page=$FORM{'page'};
$id=$FORM{'id'};
$slttitle=$FORM{'slttitle'};
if($menu eq "fav_frame"){&fav_frame;exit;}
elsif($menu eq "add"){&add;exit;}
elsif($menu eq "del"){&del;exit;}
elsif($menu eq "weblist"){&weblist;exit;}
elsif($menu eq "webadd"){&webadd;exit;}
elsif($menu eq "webdel"){&webdel;exit;}
elsif($menu eq ""){
print "Content-type: text/html\n\n";
print <<EOF;
<html><link REL="SHORTCUT ICON" href=$imagurl/ybb.ico><title>我的收藏</title><FRAMESET name=main_frame rows=*,0 frameborder=0>
<FRAME name=yuzi_frame src=$cgiurl?menu=fav_frame><FRAME name=message src=$imagurl/loading.htm>
EOF
exit;
}
exit;
################
sub fav_frame{
unless(-f "$filepath/favorites/2$Cookies{username}.cgi"){
open(TMP,">$filepath/favorites/2$Cookies{username}.cgi");
close(TMP);
chmod(0666,"$filepath/favorites/2$Cookies{username}.cgi");
}
open(PSD,"$filepath/favorites/2$Cookies{username}.cgi");
@lines=<PSD>;
close(PSD);
$favnum=@lines;
&css;
print <<EOF;
<title>我的收藏</title>
<BODY background=$imagurl/bg.gif>
<br>
<center>
<TABLE width=95% bgcolor=$bgcolor cellspacing=0 cellpadding=0>
<tr><TD bgcolor=$bgcolor0 height=25 valign=top><img src=$imagurl/curve_mo.gif></TD>
<TD bgcolor=$bgcolor0 width=100% align=center><font color=$bgcolor4>我的收藏</font></TD>
<TD bgcolor=$bgcolor0 align=right valign=top><img src=$imagurl/curve_mo1.gif></TD>
</tr></TABLE>
<TABLE width=95% cellspacing=0 cellpadding=0><tr><TD valign=bottom>贴子收藏 <a href=$cgiurl?menu=weblist>网址收藏</a></TD><TD height=16 valign=bottom align=right>$Cookies{username} 您共有$favnum/$favmax张贴子收藏</TD>
</tr></TABLE>
<style>TABLE{BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:1px}TD{BORDER-RIGHT:0px;BORDER-TOP:0px}</style>
<table width=95% cellspacing=0><tr align=center>
<td width=42% bgcolor=$bgcolor0><font color=$bgcolor4>文章标题</font></td>
<td width=7% bgcolor=$bgcolor0><font color=$bgcolor4>字[回]</font></td>
<td width=10% bgcolor=$bgcolor0><font color=$bgcolor4>作者</font></td>
<td width=10% bgcolor=$bgcolor0><font color=$bgcolor4>最后回复</font></td>
<td width=6% bgcolor=$bgcolor0><font color=$bgcolor4>点击</font></td>
<td width=17% bgcolor=$bgcolor0><font color=$bgcolor4>所属论坛</font></td>
<td width=8% bgcolor=$bgcolor0><font color=$bgcolor4>操作</font></td>
</tr></table>
EOF
if($page eq ""){$page=1;}
$ys1=($page-1)*$favpage;
$ys2=$ys1+$favpage;
if($ys2 >$favnum){$ys2=$favnum;}
for($jj=$ys1;$jj<$ys2;$jj++) {
if ($lines[$jj] ne "") {
($slttitle,$id,$bbsname)=split(/\t/,$lines[$jj]);
open(TMP,"$filepath/list/$id/$slttitle");
$m=<TMP>;
close(TMP);
($rtitles,$rthistime,$rusername,$nr,$rfrom,$rhasreply,$emote,$lastname,$rlasttime,$re,$rhassee,$jing,$lock)=split(/\t/,$m);
$nr=~s/<([^>]|\n)*>//g;
$lnr=length($nr);
if (length($rtitles) > 40) {$rtitles = substr($rtitles,0,40);$rtitles.="...";}
if (length($nr) > 40) {$nr = substr($nr,0,40);$nr.="...";}
$nr=~s/\'//g;
if($jing eq "1"){$my="<img src=$imagurl/jh.gif>";}
elsif($rusername eq $Cookies{username}){$my="<img src=$imagurl/my.gif>";}else{$my=" ";}
if($lastname ne "--"){$lastname="<a onclick=min_yuzi() target=message href=yhreg.cgi?menu=viewuser&username=$lastname>$lastname</a>";}
print "<table width=95% cellspacing=0 border=1 bordercolor=$bgcolor><tr align=center><td bgcolor=$bgcolor2 width=3%>$my</td>
<td bgcolor=$bgcolor1 align=left width=39% onMouseOver=this.style.backgroundColor='$bgcolor2' onMouseOut=this.style.backgroundColor=''><a href=JavaScript:New('bbs$Cookies{style}.cgi?menu=show&id=$id&slttitle=$slttitle')><img border=0 alt=新窗口 src=$imagurl/$emote.gif></a> <acronym title='$nr'><a onclick=min_yuzi() target=message href=bbs$Cookies{style}.cgi?menu=show&id=$id&slttitle=$slttitle>$rtitles</a></acronym>";
$ii=0;
if($rhasreply>15){
print "[第 ";
$j=$rhasreply;while($j>0){$j=$j-15;}$ii++;
$j=$rhasreply;while($j>0){print "<a onclick=min_yuzi() target=message href=bbs$Cookies{style}.cgi?menu=show&id=$id&slttitle=$slttitle&page=$ii>";
print "<b><font color=red>$ii</font></b></a> ";$j=$j-15;$ii++;}
print "页]";
$ii--;}
if($rhasreply eq 0){$rhasreply=$lnr;}else{$sn=$rhasreply;$rhasreply="<font color=red>[$rhasreply]</font>";}
print <<EOF;
</td><td bgcolor=$bgcolor2 width=7%>$rhasreply</td>
<td bgcolor=$bgcolor1 width=10% style=word-break:break-all><a onclick=min_yuzi() target=message href=yhreg.cgi?menu=viewuser&username=$rusername>$rusername</a></td>
<td bgcolor=$bgcolor2 width=10% style=word-break:break-all>$lastname</td>
<td bgcolor=$bgcolor1 width=6%>$rhassee</td>
<td bgcolor=$bgcolor2 width=17%><a onclick=min_yuzi() target=message href=bbs$Cookies{style}.cgi?id=$id>$bbsname</a></td>
<td bgcolor=$bgcolor1 width=8%><a href=$cgiurl?menu=del&id=$id&slttitle=$slttitle>删除</a></td>
</tr></table>
EOF
}
}
$favnum=@lines;
$webys=int($favnum/$favpage);
$webyss=$favnum % $favpage;
if ($webyss != 0){$webys++;}
for($ii=1;$ii<=$webys;$ii++){
print "<a href=$cgiurl?page=$ii>" if ($page != $ii);
print "[$ii]</a>";
}
exit;
}
############
sub add{
if($id eq ""){&errorview("不能把公告栏中的贴子加入收藏!");}
if($slttitle eq ""){&errorview("系统不存在此贴子的数据!");}
unless(-e "$filepath/list/$id"){&errorview("系统不存在此ID的论坛!");}
unless(-e "$filepath/list/$id/$slttitle"){&errorview("此帖子已经被删除了!");}
open (TMP,"$filepath/list/$id.cgi");
$line=<TMP>;
close(TMP);
($bzmc,$secret,$bzrmail,$outurl,$bbsname,$fbzmc2,$rtime,$htmlt,$htmlw,$jj,$fbzmc)=split(/\t/,$line);
open(TITLES,"$filepath/favorites/2$Cookies{username}.cgi");
@hastitles=<TITLES>;
close(TITLES);
$TEMP="$slttitle\t$id\t$bbsname";
foreach $hastitles(@hastitles) {
chomp($hastitles);
if($TEMP eq $hastitles){&okview("该贴已经被你加入收藏了!");}
}
$favnum=@hastitles;
if($favnum >= $favmax){&okview("您的贴子收藏不能超过$favmax个!");}
open(PSD,">$filepath/favorites/2$Cookies{username}.cgi");
print PSD "$slttitle\t$id\t$bbsname\n";
foreach( @hastitles){
$_=~s/\n//isg;
print PSD "$_\n";
}
close(PSD);
&okview("您已经成功地将该贴子添加到贴子收藏中!");
exit;
}
#############
sub del{
open(TITLES,"$filepath/favorites/2$Cookies{username}.cgi");
@hastitles=<TITLES>;
close(TITLES);
open(TITLES,">$filepath/favorites/2$Cookies{username}.cgi");
foreach $m (@hastitles){
$m=~s/\n//g;
if($m ne ""){
($slttitle,$id,$bbsname)=split(/\t/,$m);
$TEMP="$FORM{'slttitle'}\t$FORM{'id'}";
$PSD="$slttitle\t$id";
if($PSD ne $TEMP){
print TITLES $m."\n";
}}}
close(TITLES);
print "Content-type: text/html\n\n";
print <<EOF;
<HTML><head><META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=gb2312>
<meta HTTP-EQUIV=REFRESH CONTENT=3;URL=$cgiurl>
<LINK href=$imagurl/bbs.css rel=stylesheet></head>
您已经成功地将该贴子从贴子收藏中删除,请稍候,系统将自动返回......
<BR><BR><A HREF=$cgiurl>如果系统没有反应,请点击这里返回!</A></html>
EOF
exit;
}
################
sub weblist{
unless(-f "$filepath/favorites/3$Cookies{username}.cgi"){
open(TMP,">$filepath/favorites/3$Cookies{username}.cgi");
close(TMP);
chmod(0666,"$filepath/favorites/3$Cookies{username}.cgi");
}
open(PSD,"$filepath/favorites/3$Cookies{username}.cgi");
@lines=<PSD>;
close(PSD);
$favnum=@lines;
&css;
print <<EOF;
<title>我的收藏</title>
<BODY background=$imagurl/bg.gif>
<br>
<center>
<TABLE width=95% bgcolor=$bgcolor cellspacing=0 cellpadding=0>
<tr><TD bgcolor=$bgcolor0 height=25 valign=top><img src=$imagurl/curve_mo.gif></TD>
<TD bgcolor=$bgcolor0 width=100% align=center><font color=$bgcolor4>我的收藏</font></TD>
<TD bgcolor=$bgcolor0 align=right valign=top><img src=$imagurl/curve_mo1.gif></TD>
</tr></TABLE>
<TABLE width=95% cellspacing=0 cellpadding=0><tr><TD valign=bottom><a href=$cgiurl>贴子收藏</a> 网址收藏</TD><TD height=16 valign=bottom align=right>$Cookies{username} 您共有$favnum/$favmax个网址收藏</TD>
</tr></TABLE>
<style>TABLE{BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:1px}TD{BORDER-RIGHT:0px;BORDER-TOP:0px}</style>
<table width=95% cellspacing=0><tr align=center>
<td width=20% bgcolor=$bgcolor0><font color=$bgcolor4>网站名称</font></td>
<td width=40% bgcolor=$bgcolor0><font color=$bgcolor4>网站介绍</font></td>
<td width=25% bgcolor=$bgcolor0><font color=$bgcolor4>加入时间</font></td>
<td width=17% bgcolor=$bgcolor0><font color=$bgcolor4>操作</font></td>
</tr></table>
EOF
if($page eq ""){$page=1;}
$ys1=($page-1)*$favpage;
$ys2=$ys1+$favpage;
if($ys2 >$favnum){$ys2=$favnum;}
for($jj=$ys1;$jj<$ys2;$jj++) {
if ($lines[$jj] ne "") {
($webname,$weburl,$webinfo,$addtime)=split(/\t/,$lines[$jj]);
$fav = "<table width=95% cellspacing=0 border=1 bordercolor=$bgcolor>
<tr align=center>
<td bgcolor=$bgcolor2 align=left width=20% onMouseOver=this.style.backgroundColor='$bgcolor1' onMouseOut=this.style.backgroundColor=''> <img src=$imagurl/genre/html.gif> <a href=$weburl target=_blank title=$weburl>$webname</a></td>
<td bgcolor=$bgcolor1 width=40% style=word-break:break-all>$webinfo</td>
<td bgcolor=$bgcolor2 width=25%>$addtime</font></td>
<td bgcolor=$bgcolor1 width=17%><a href=$cgiurl?menu=webdel&webname=$webname>删除</a></td>
</tr></table>";
print $fav;
}
}
$favnum=@lines;
$webys=int($favnum/$favpage);
$webyss=$favnum % $favpage;
if ($webyss != 0){$webys++;}
for($ii=1;$ii<=$webys;$ii++){
print "<a href=$cgiurl?page=$ii>" if ($page != $ii);
print "[$ii]</a>";
}
print <<EOF;
</td></tr>
<tr>
<td>
<form method="POST" action="$cgiurl"><input type=hidden name="menu" value="webadd">
网站名称:<input size=11 name=webname maxLength=15>
网站地址:<input size=18 name=weburl value=http://>
<br>网站介绍:<input size=40 name=webinfo><br>
<input type=submit name=Submit value="新增"> <input type=reset value="重写">
</form>
</td>
</tr>
</table>
</body>
</html>
EOF
exit;
}
############
sub webadd{
if (($FORM{'webname'} eq "")||($FORM{'weburl'} eq "")||($FORM{'weburl'} eq "http://")){&errorview("网站名称和网站地址不能为空!");}
if ($FORM{'webinfo'} eq ""){&errorview("网站介绍不能为空!");}
if(length($FORM{'webinfo'}) > 100 ){&errorview("网站介绍不能大于50个汉字!");}
open(TITLES,"$filepath/favorites/3$Cookies{username}.cgi");
@hastitles=<TITLES>;
close(TITLES);
$TEMP="$FORM{'webname'}\t$FORM{'weburl'}";
foreach $ms (@hastitles) {
($webname,$weburl)=split(/\t/,$ms);
if($webname eq $FORM{'webname'}){&errorview("该网站已经被您加入收藏了!");}
}
$favnum=@hastitles;
if($favnum >= $favmax){&errorview("您的收藏不能超过$favmax个!");}
open(TITLES,">$filepath/favorites/3$Cookies{username}.cgi");
print TITLES $FORM{'webname'}."\t".$FORM{'weburl'}."\t".$FORM{'webinfo'}."\t".$thistime."\n";
foreach $m (@hastitles) {
chomp($m);
($webname,$weburl)=split(/\t/,$m);
if($webname ne $FORM{'webname'}){
print TITLES $m."\n";
}}
close(TITLES);
print "Content-type: text/html\n\n";
print <<EOF;
<HTML><head><META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=gb2312><meta HTTP-EQUIV=REFRESH CONTENT=3;URL=$cgiurl?menu=weblist>
<LINK href=$imagurl/bbs.css rel=stylesheet></head>
您已经成功地将$FORM{'webname'}添加到网址收藏中,请稍候,系统将自动返回......
<BR><BR><A HREF=$cgiurl?menu=weblist>如果系统没有反应,请点击这里返回!</A></html>
EOF
exit;
}
###############
sub webdel{
open(TITLES,"$filepath/favorites/3$Cookies{username}.cgi");
@hastitles=<TITLES>;
close(TITLES);
open(TITLES,">$filepath/favorites/3$Cookies{username}.cgi");
foreach $m (@hastitles){
$m=~s/\n//g;
if($m ne ""){
($webname)=split(/\t/,$m);
if($webname ne $FORM{'webname'}){
print TITLES $m."\n";
}}}
close(TITLES);
print "Content-type: text/html\n\n";
print <<EOF;
<HTML><head><META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=gb2312>
<meta HTTP-EQUIV=REFRESH CONTENT=3;URL=$cgiurl?menu=weblist>
<LINK href=$imagurl/bbs.css rel=stylesheet></head>
您已经成功地将$FORM{'webname'}从网址收藏中删除,请稍候,系统将自动返回......
<BR><BR><A HREF=$cgiurl?menu=weblist>如果系统没有反应,请点击这里返回!</A></html>
EOF
exit;
}
######################### END OF SCRIPT #########################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -