📄 whosonline.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=2000;
$LBCGI::DISABLE_UPLOADS = 1;
$LBCGI::HEADERS_ONCE = 1;
require "data/boardinfo.cgi";
require "data/styles.cgi";
require "lb.lib.pl";
$|++;
$thisprog = "whosonline.cgi";
$query = new LBCGI;
&ipbanned; #封杀一些 ip
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 = "客人";
}
else {
# &getmember("$inmembername");
&getmembernolock("$inmembername");
&error("普通错误&密码与用户名不相符,请重新登录!") if ($inpassword ne $password);
&error("普通错误&此用户根本不存在!") if ($userregistered eq "no");
}
$membercodetemp = $membercode;
$current_time = time;
$addtime = $timezone*3600 + $timedifferencevalue*3600;
$current_time = &dateformatshort($current_time + $addtime);
$helpurl = &helpfiles("在线用户");
$helpurl = qq~$helpurl<img src="$imagesurl/images/help_b.gif" border=0></a>~;
my $filetoopens = "$lbdir" . "data/onlinedata.cgi";
$filetoopens = &lockfilename($filetoopens);
if (!(-e "$filetoopens.lck")) {
&whosonline("$inmembername\t在线用户\tnone\t查看在线用户状态\t");
}
$freshtime= $query->cookie("freshtime");
if ($freshtime ne "") {
$autofreshtime = $freshtime*60-1;
$autofreshtime = 60 if ($autofreshtime < 60);
$refreshnow = qq~<meta http-equiv="refresh" content="$autofreshtime;">~;
}
&title;
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~$refreshnow
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr><td width=30% rowspan=2 valign=top>$forumgraphic</td>
<td valign=middle align=left><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 width=15 height=15><img src="$imagesurl/images/openfold.gif" border=0> 当前在线用户 (最后更新时间:$current_time)
</td><tr><td valign=bottom align=right>
$helpurl</td></tr></table><p>
~;
$onlinedata = @onlinedata;
$output .= qq~<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center><tr><td><table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr><td bgcolor=$miscbacktwo valign=middle colspan=8 align=center><font face=$font color=$fontcolormisc><b>在线用户列表</b> (共 $onlinedata 人)</td></tr><tr>
<td bgcolor=$miscbackone align=center><font face=$font color=$fontcolormisc><b>头像</td>
<td bgcolor=$miscbackone align=center><font face=$font color=$fontcolormisc><b>用户名</td>
<td bgcolor=$miscbackone align=center><font face=$font color=$fontcolormisc><b>当前位置</td>
<td bgcolor=$miscbackone align=center><font face=$font color=$fontcolormisc><b>最后动作</td>
<td bgcolor=$miscbackone align=center><font face=$font color=$fontcolormisc><b>来访时间</td>
<td bgcolor=$miscbackone align=center><font face=$font color=$fontcolormisc><b>最近活动时间</td>
<td bgcolor=$miscbackone align=center><font face=$font color=$fontcolormisc><b>IP</td>
</tr>
~;
foreach (@onlinedata) {
chomp $_;
($savedusername, $savedcometime, $savedtime, $savedwhere, $saveipaddresstemp, $saveosinfo, $savebrowseinfo, $savedwhere2, $fromwhere, $savemembercode, $savehidden) = split(/\t/, $_);
$savedwhere2 =~ s/*#!&*//;
$fromwhere = "已设置保密" if (($pvtip ne "on")&&($membercode ne "ad")&&($membercode ne "smo")&&($inmembmod ne "yes"));
$savedcometime = &dateformatshort($savedcometime + $addtime);
$savedtime = &dateformatshort($savedtime + $addtime);
($lookfor, $no) = split(/\(/,$savedusername);
if ($lookfor eq "客人") { $savedusername = "客人"; $useravatar = "没有"; }
else {
my $checkhidden=0;
if (((($savehidden eq 1)&&($membercodetemp ne "ad"))||($savedusername =~ /^客人/))&&(lc($savedusername) ne lc($inmembername))) {
$checkhidden=1;
$savedusername = "隐身会员"; $useravatar = "没有";
}
if ($checkhidden==0) {
# &getmember("$savedusername");
&getmembernolock("$savedusername");
if ($avatars eq "on") {
if (($personalavatar)&&($personalwidth)&&($personalheight)) { #自定义头像存在
$personalavatar =~ s/\$imagesurl/${imagesurl}/o;
if (($personalavatar =~ /\.swf$/i)&&($flashavatar eq "yes")) {
$personalavatar=uri_escape($personalavatar) if ($uri_escape ne "no");
$useravatar = qq(<br> <OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH=$personalwidth HEIGHT=$personalheight><PARAM NAME=MOVIE VALUE=$personalavatar><PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><EMBED SRC=$personalavatar WIDTH=$personalwidth HEIGHT=$personalheight PLAY=TRUE LOOP=TRUE QUALITY=HIGH></EMBED></OBJECT>);
}
else {
$personalavatar=uri_escape($personalavatar) if ($uri_escape ne "no");
$useravatar = qq(<br> <img src=$personalavatar border=0 width=$personalwidth height=$personalheight>);
}
}
elsif (($useravatar ne "noavatar") && ($useravatar)) {
$useravatar=uri_escape($useravatar) if ($uri_escape ne "no");
$useravatar = qq(<br> <img src=$imagesurl/avatars/$useravatar.gif>);
}
else {$useravatar="没有"; }
}
}
}
($saveipaddress, $none) = split(/=/,$saveipaddresstemp);
($ip1,$ip2,$ip3,$ip4) = split(/\./,$saveipaddress);
if ($membercodetemp eq "ad") {
$saveipaddress="$ip1.$ip2.$ip3.$ip4";
}
elsif ($membercodetemp eq "smo") {
if ($smocanseeip eq "no") { $saveipaddress="$ip1.$ip2.$ip3.$ip4"; }
else {
if ($pvtip eq "on") { $saveipaddress="$ip1.$ip2.$ip3.$ip4"; }
else { $saveipaddress="已设置保密"; }
}
}
elsif ($membercodetemp eq "mo") {
if ($pvtip eq "on") { $saveipaddress="$ip1.$ip2.$ip3.*"; }
else { $saveipaddress="已设置保密"; }
}
else {
if (($pvtip eq "on")&&($inmembername ne "客人")) {
$saveipaddress="$ip1.$ip2.*.*";
}
else { $saveipaddress="已设置保密"; }
}
unless (($savedusername eq "客人")||($savedusername eq "隐身会员")) {
$ppp = qq~<a href="profile.cgi?action=show&member=~ . ($uri_escape eq "no" ? $savedusername : uri_escape($savedusername)) . qq~" target=_blank><font face=$font color=$fontcolormisc><b>$savedusername</b></font></a>~;
}
else {
$ppp = qq~<font face=$font color=$fontcolormisc><b>$savedusername</b></font>~;
}
$output .=qq~<tr><td bgcolor=$miscbackone nowrap align=center>$useravatar</td>
<td bgcolor=$miscbackone nowrap align=center>$ppp</td>
<td bgcolor=$miscbackone nowrap><font face=$font color=$fontcolormisc>$savedwhere</font></td>
<td bgcolor=$miscbackone><font face=$font color=$fontcolormisc>$savedwhere2</font></td>
<td bgcolor=$miscbackone nowrap align=center><font face=$font color=$fontcolormisc>$savedcometime</font></td>
<td bgcolor=$miscbackone nowrap align=center><font face=$font color=$fontcolormisc>$savedtime</font></td>
<td bgcolor=$miscbackone nowrap align=center><font face=$font color=$fontcolormisc>$saveipaddress</font></td>
</tr>~;
}
$output .= qq~</table></td></tr></table>~;
print header(-charset=>gb2312);
&output( -Title => "$boardname - 论坛当前在线用户", -ToPrint => $output, -Version => $versionnumber );
exit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -