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

📄 whosonline.cgi

📁 一个linux论坛
💻 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>
&nbsp;&nbsp;<img src="$imagesurl/images/closedfold.gif" border=0>&nbsp;&nbsp;<a href="leoboard.cgi">$boardname</a><br>
&nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0 width=15 height=15><img src="$imagesurl/images/openfold.gif" border=0>&nbsp;&nbsp;当前在线用户 (最后更新时间:$current_time)
</td><tr><td valign=bottom align=right>
&nbsp; $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>&nbsp; <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>&nbsp; <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>&nbsp; <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 + -