📄 loginout.cgi
字号:
#!/usr/bin/perl
#############################################################
# LeoBoard ver.5000 / LB5000 / 雷傲超级论坛 ver.5000
#
# 版权所有: 雷傲工作室(原蓝宝石软件工作室)
#
# 制作人 : 山鹰糊 (Shining Hu)
# 花无缺 (Ifairy Han)
#
# 主页地址: http://www.CGIer.com/ CGI 编程者之家
# http://www.LeoBoard.com/ 雷傲论坛支持主页
# http://www.leoBBS.com/ 本论坛直通车
#
#############################################################
BEGIN {
$LBPATH = '.';
my $pgm = $0;
$pgm =~s/\\/\//g;
$pgm =~s/^.*\/([^\/]+)$/$1/g;
unless (-e $LBPATH.'/'.$pgm) {
foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'}) {
s!\\!/!g; s/^(.*)\/[^\/]+$/$1/g;
if (-e $_ . '/' .$pgm) { $LBPATH = $_; last; }
}
}
unshift (@INC, "$LBPATH");
}
use LBCGI;
$LBCGI::POST_MAX=10000;
$LBCGI::DISABLE_UPLOADS = 1;
$LBCGI::HEADERS_ONCE = 1;
require "data/boardinfo.cgi";
require "data/styles.cgi";
require "lb.lib.pl";
$|++; # Unbuffer the output
$thisprog = "loginout.cgi";
$query = new LBCGI;
&ipbanned; #封杀一些 ip
if ($COOKIE_USED eq 1) {$cookiepath ="";}
else {
$boardurltemp =$boardurl;
$boardurltemp =~ s/http\:\/\/(\S+?)\/(.*)/\/$2/;
$cookiepath = $boardurltemp;
$cookiepath =~ s/\/$//;
# $cookiepath =~ tr/A-Z/a-z/;
}
$inforum = $query -> param('forum');
$inforum = &stripMETA("$inforum");
&error("打开文件&老大,别乱黑我的程序呀!") if (($inforum) && ($inforum !~ /^[0-9]+$/));
for ('inmembername','inpassword','action','threadages','CookieDate','mess','onlineview','advpost','viewMode','nodispavatar','nodispsign','nodispphoto','freshtime','hidden','tanchumsg') {
next unless defined $_;
next if $_ eq 'SEND_MAIL';
$tp = $query->param($_);
$tp = &unHTML("$tp");
${$_} = $tp;
}
$hidden = 0 if ($canhidden eq "no");
if (-e "${lbdir}data/style${inforum}.cgi") { require "${lbdir}data/style${inforum}.cgi"; }
if (! $inmembername) { $inmembername = $query->cookie("amembernamecookie"); }
if (! $inpassword) { $inpassword = $query->cookie("apasswordcookie"); }
$inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
$inpassword =~ s/[\a\f\n\e\0\r\t\|\@\;\#\{\}\$]//isg;
if ($inmembername eq "" || $inmembername eq "客人") {
$inmembername = "客人";
$userregistered = "no";
}
else {
&error("用户注册&对不起,您输入的用户名有问题,请不要在用户名中包含\@\#\$\%\^\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?\[\]这类字符!") if ($inmembername =~ /[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?\[\]]/);
&getmember("$inmembername");
}
$memberfilename = $inmembername;
$memberfilename =~ s/ /\_/g;
$memberfilename =~ tr/A-Z/a-z/;
$filetotrash = "$lbdir". "$msgdir/main/$memberfilename" . "_mian.cgi";
&getoneforum("$inforum");
#&moderator("$inforum");
&title;
if ($forumgraphic) {
if ($forumgraphic =~ /\.swf$/i) {$forumgraphic = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=$imagesurl/myimages/$forumgraphic quality=high width=$fgwidth height=$fgheight pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
else {$forumgraphic = qq~<img src=$imagesurl/myimages/$forumgraphic border=0>~};
} else {
if ($boardlogo =~ /\.swf$/i) {$forumgraphic = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=$imagesurl/myimages/$boardlogo quality=high width=$boardlogow height=$boardlogoh pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
else {$forumgraphic = qq~<img src=$imagesurl/myimages/$boardlogo>~};
}
$output .= qq~<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center><tr><td width=30% rowspan=2 valign=top>$forumgraphic</td>
<td valign=top align=left><font face="$font" color=$fontcolormisc><font face="$font" color=$fontcolormisc>
<img src="$imagesurl/images/closedfold.gif" border=0> <a href="leoboard.cgi">$boardname</a><br>
<img src="$imagesurl/images/bar.gif" border=0><img src="$imagesurl/images/openfold.gif" border=0> 登录/退出
</td></tr></table><p><table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr><td><table cellpadding=6 cellspacing=1 border=0 width=100%>
~;
if ($action eq "login") {
if (($userregistered ne "no") && ($inpassword eq $password)) {
&whosonline("$inmembername\t论坛登录\tnone\t登录论坛\t");
if ($inforum eq "") { $refrashurl = "leoboard.cgi"; } else { $refrashurl = "forums.cgi?forum=$inforum"; }
$output .= qq~<tr><td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc><b>感谢你登录 $inmembername</b></font></td></tr>
<tr><td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>
具体情况:<ul><li><a href="$refrashurl">进入论坛</a>
<meta http-equiv="refresh" content="3; url=$refrashurl">
</ul></tr></td></table></td></tr></table>
~;
if ($boarddispsign eq "no") { $nodispsign="yes"; } else { $nodispsign="no" if !($nodispsign); }
$namecookie = cookie(-name => "amembernamecookie", -value => "$inmembername", -path => "$cookiepath/", -expires => "$CookieDate");
$passcookie = cookie(-name => "apasswordcookie", -value => "$inpassword", -path => "$cookiepath/", -expires => "$CookieDate");
$onlineviewcookie = cookie(-name => "onlineview", -value => "$onlineview", -path => "$cookiepath/", -expires => "$CookieDate");
$advpostcookie = cookie(-name => "advpost", -value => "$advpost", -path => "$cookiepath/", -expires => "$CookieDate");
$threadcookie = cookie(-name => "threadages", -value => "$threadages", -path => "$cookiepath/", -expires => "$CookieDate");
$viewcookie = cookie(-name => "viewMode", -value => "$viewMode", -path => "$cookiepath/", -expires => "$CookieDate");
$freshtimecookie = cookie(-name => "freshtime", -value => "$freshtime", -path => "$cookiepath/", -expires => "$CookieDate");
$tanchumsgcookie = cookie(-name => "tanchumsg", -value => "$tanchumsg", -path => "$cookiepath/", -expires => "$CookieDate");
$nodisp = cookie(-name => "nodisp", -value => "$nodispavatar|$nodispsign|$nodispphoto", -path => "$cookiepath/", -expires => "$CookieDate");
print header(-cookie=>[$onlineviewcookie,$advpostcookie,$threadcookie,$viewcookie, $nodisp, $freshtimecookie, $tanchumsgcookie, $namecookie,$passcookie], -charset=>gb2312);
}
else {
print header(-charset=>gb2312);
$output .= qq~<tr><td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc><b>登录错误</b></font></td></tr>
<tr><td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>登录错误的可能原因:
<ul><li>密码错误<li>用户名错误<li>您不是<a href=register.cgi?forum=$inforum>注册</a>用户</ul></tr></td></table></td></tr></table>~;
}
}
elsif ($action eq "logout") {
$filetoopen = "$lbdir" . "data/onlinedata.cgi";
my $filetoopens = &lockfilename($filetoopen);
if (!(-e "$filetoopens.lck")) {
&winlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
open(FILE,"$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
my @onlinedata = <FILE>;
close(FILE);
if ($#onlinedata >= 0) {
open(ONLINEFILE,">$filetoopen");
flock(ONLINEFILE, 2) if ($OS_USED eq "Unix");
foreach (@onlinedata) {
chomp $_;
($savedusername,$savedcometime,$savedtime, my $no) = split(/\t/, $_);
if (lc($savedusername) ne lc($inmembername)) {
print ONLINEFILE "$_\n";
}
else {
&uplogintime("$savedusername","")
}
}
close(ONLINEFILE);
}
else { unlink("$filetoopen") if ($#onlinedata eq 0); }
&winunlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
}
unlink "$filetotrash" if (-e "$filetotrash");
$output .= qq~<tr><td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc><b>您现在已经退出论坛</b></font></td></tr>
<tr><td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>
具体选项:<ul><li><a href="leoboard.cgi">返回论坛</a><li><a href=javascript:close();>关闭您的浏览器</a></ul></tr></td></table></td></tr></table>
~;
$namecookie = cookie(-name => "amembernamecookie", -value => "", -path => "$cookiepath/");
$passcookie = cookie(-name => "apasswordcookie", -value => "", -path => "$cookiepath/");
$trashcookie = cookie(-name => "templastvisit", -value => "", -path => "$cookiepath/");
$threadages = cookie(-name => "threadages", -value => "", -path => "$cookiepath/");
$onlineviewcookie = cookie(-name => "onlineview", -value => "", -path => "$cookiepath/");
$advpostcookie = cookie(-name => "advpost", -value => "", -path => "$cookiepath/");
$viewcookie = cookie(-name => "viewMode", -value => "", -path => "$cookiepath/");
$nodisp = cookie(-name => "nodisp", -value => "", -path => "$cookiepath/");
$freshtimecookie = cookie(-name => "freshtime", -value => "", -path => "$cookiepath/");
$tanchumsgcookie = cookie(-name => "$tanchumsg", -value => "", -path => "$cookiepath/");
print header(-cookie=>[$namecookie, $passcookie, $trashcookie,$threadages,$onlineviewcookie,$advpostcookie,$viewcookie, $nodisp, $freshtimecookie, $tanchumsgcookie], -charset=>gb2312);
}
else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -