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

📄 setmembers.cgi

📁 一个linux论坛
💻 CGI
📖 第 1 页 / 共 5 页
字号:
#!/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=1024*150;
$LBCGI::DISABLE_UPLOADS = 1;
$LBCGI::HEADERS_ONCE = 1;
require "data/boardinfo.cgi";
require "data/styles.cgi";
require "lbadmin.lib.pl";
require "lbmail.lib.pl";
require "lb.lib.pl";
require "code.cgi"; 
$|++;                                     # Unbuffer the output

#################--- Begin the program ---###################
$thisprog = "setmembers.cgi";

$query = new LBCGI;

&ipbanned; #封杀一些 ip

$action          = $query -> param('action');
$box          = $query -> param('box');
$checkaction     = $query -> param('checkaction');
$inletter        = $query -> param('letter');
$inmember        = $query -> param('member');
$inmember        = &unHTML("$inmember");
$action          = &unHTML("$action");

$indellast       = $query -> param('dellast');
$indellast       = &unHTML("$indellast");
$indelposts      = $query -> param('delposts');
$indelposts      = &unHTML("$indelposts");
$indeltime       = $query -> param('deltime');
$indeltime       = &unHTML("$indeltime");
$delusetype       = $query -> param('delusetype');
$delusetype       = &unHTML("$delusetype");
$indelcdrom      = $query -> param('delcdrom'); 
$indelcdrom      = &unHTML("$indelcdrom"); 
$undelname		 = $query -> param('undelname'); 
$undelname		 = &unHTML("$undelname"); 

$inmembername = $query->cookie("adminname");
$inpassword   = $query->cookie("adminpass");
$inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
$inpassword =~ s/[\a\f\n\e\0\r\t\|\@\;\#\{\}\$]//isg;

&getadmincheck;
print header(-charset=>gb2312);       
&admintitle;
        
&getmember("$inmembername");
        
        
        if ((($membercode eq "ad")||($membercode eq "smo")) && ($inpassword eq $password) && (lc($inmembername) eq lc($membername))) {
            
            print qq~
            <tr><td bgcolor=#333333" colspan=2><font color=#FFFFFF>
            <b>欢迎来到论坛管理中心 / 用户管理</b>
            </td></tr>
            ~;
            
            my %Mode = ( 

            'viewletter'         =>    \&viewletter,
            'edit'               =>    \&edit,        
            'deletemember'       =>    \&deletemember,
            'unban'              =>    \&unban,
            'delnopost'		 =>    \&delnopost,
            'canceldel'		 =>    \&canceldel,
            'deleteavatar'	 =>    \&deleteavatar,
            'boxaction'          =>    \&boxaction,
            'delok'		 =>    \&delok,
            'viewip'         =>    \&viewip,
		'viewdelmembers' => \&viewdelmembers, 
		'undelmember' => \&undelmember 
            );


            if($Mode{$action}) { 
               $Mode{$action}->();
            }
            else { &memberoptions; }
            
            print qq~</table></td></tr></table>~;
        }
        else {
            &adminlogin;
        }
        

############### delete member

sub deleteavatar {

    $oldmembercode = $membercode;
    &getmember("$inmember");
    if ((($membercode eq "ad")||($membercode eq "smo")||($membercode eq "cmo")||($membercode eq "mo"))&&($oldmembercode eq "smo")) {
            print "<tr><td bgcolor=#EEEEEE colspan=2 align=center><font color=#333333><b>总斑竹无权删除坛主和斑竹资料!</b></td></tr>";
            exit;
    }
    	unlink ("${imagesdir}usravatars/$inmember.gif");
    	unlink ("${imagesdir}usravatars/$inmember.png");
    	unlink ("${imagesdir}usravatars/$inmember.jpg");
    	unlink ("${imagesdir}usravatars/$inmember.jpeg");
    	unlink ("${imagesdir}usravatars/$inmember.swf");
    	unlink ("${imagesdir}usravatars/$inmember.bmp");

        print qq~
        <tr>
        <td bgcolor=#EEEEEE align=center colspan=2>
        <font color=#333333><b>用户头像已经删除了</b>
        </td></tr>
         ~;


} # end routine

##################################################################################
######## Subroutes (forum list)


sub memberoptions {
   %iplist=();%lettlerlist=();
open (FILE, "$lbdir/data/lbmember4.cgi");
flock(FILE, 1) if ($OS_USED eq "Unix");
my @file = <FILE>;
close (FILE);
chomp @file;
@file=sort @file;
$nowcount_a = 0;$nowcount_b = 0;
foreach(@file){
    my ($getmembername,$getip)=split(/\t/,$_);
    my $fr;
    ($getip,$getip2)=split(/, /,$getip);
    $getip = $getip2 if (($getip2 ne "")&&($getip2 ne "unknown"));
    $getip=~s/\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$//;
    unless(defined($iplist{$getip})) {
        $iplist{$getip}="$_";
        $ipshow=sprintf("% 3s",$getip);
        $ipshow=~s/\s/\&nbsp\;/g;
        $tempoutput2 .= qq~<br>~ if ($nowcount_b%15 == 0);
        $tempoutput2 .= qq~ <a href="$thisprog?action=viewip&letter=$getip">$ipshow</a> ~;
        $nowcount_b++;
    }
    if ($getmembername =~ /^[\w\-]/) {
	$fr = substr($getmembername, 0, 1);
	$fr =~ tr/a-z/A-Z/;
        $frshow=sprintf("%- 2s",$fr);
        $frshow=~s/\s/\&nbsp\;/g;
    } else {
	$fr =substr($getmembername, 0, 2);
        $frshow=$fr;
    }
    unless(defined($lettlerlist{$fr})) {
	$lettlerlist{$fr}="$_";
        $tempoutput .= qq~<br>~ if ($nowcount_a%15 == 0);
        $tempoutput .= qq~ <a href="$thisprog?action=viewletter&letter=~ . ($uri_escape eq "no" ? $fr : uri_escape($fr)) . qq~">$frshow</a> ~;
        $nowcount_a ++;
    }
}
    print qq~
    <tr>
    <td bgcolor=#EEEEEE align=center colspan=2>
    <font color=#990000><b>请选择一项</b>
    </td>
    </tr>          
    ~;
  if ($membercode eq "ad") {
    print qq~
    <tr>
    <td bgcolor=#FFFFFF colspan=2>
    <font color=#333333><b><a href="foruminit.cgi?action=dogetold">用户数据整理</a></b><br>
    对用户数据进行整理,保证论坛高速运行,建议每10-15天运行一次。<BR><BR>
    </td>
    </tr>

    <tr>
    <td bgcolor=#FFFFFF colspan=2>
    <font color=#333333><b><a href="foruminit.cgi?action=uptop">更新用户排名</a></b><br>
    用户排名其实不会自动更新的,除非你在这儿更新一下。<BR><BR>
    </td>
    </tr>
                
    <tr>
    <td bgcolor=#FFFFFF colspan=2>
    <font color=#333333><b><a href="foruminit.cgi?action=updatecount">重新计算用户总数</a></b><br>
    将更新首页显示的用户数,这样可以用来恢复正确总用户数。<BR><BR>
    </td>
    </tr>
                
    <tr>
    <td bgcolor=#FFFFFF colspan=2>
    <font color=#333333><b>删除符合条件的用户</b>(同时会自动更新用户排名)<BR>
    预删除并不会真正删除用户,只是做一个统计。斑竹和坛主是不允许在这里删除的。<BR>
    预删除和真正删除期间,如果用户访问了论坛,那么在真正删除的时候,此用户资料将被保留。<BR>
    真正删除后,用户的所有资料都会丢失,除非你做过备份,否则是无法恢复的。
	<form action="setmembers.cgi" method=POST>
        <input type=hidden name="action" value="delnopost">
        <select name="deltime">
        <option value="30" >一个月内没访问 
        <option value="60" >二个月内没访问 
        <option value="90" >三个月内没访问
        <option value="121">四个月内没访问
        <option value="151">五个月内没访问
        <option value="182">六个月内没访问
        <option value="212">七个月内没访问
        <option value="243">八个月内没访问
        <option value="273">九个月内没访问
        <option value="304">十个月内没访问
        <option value="365">一年之内没访问
        <option value="730">两年之内没访问
        </select> 且 
        <select name="delposts">
		<option value="9999999999">不管发贴总数 
        <option value="0"   >没有发过贴子
        <option value="10"  >总发贴少于 10
        <option value="50"  >总发贴少于 50
        <option value="100" >总发贴少于 100
        <option value="200" >总发贴少于 200
        <option value="300" >总发贴少于 300
        <option value="500" >总发贴少于 500
        <option value="800" >总发贴少于 800
        <option value="1000">总发贴少于 1000
        </select> 且 
        <select name="dellast">
        <option value="no"  >不管访问次数
        <option value="5"   >访问少于 5 次
        <option value="10"  >访问少于 10 次
        <option value="20"  >访问少于 20 次
        <option value="50"  >访问少于 50 次
        <option value="80"  >访问少于 80 次
        <option value="100" >访问少于 100 次
        <option value="200" >访问少于 200 次
        <option value="500" >访问少于 500 次
        </select> 且 
       <select name="delcdrom"> 
       <option value="30" >一个月内没发言 
       <option value="60" >二个月内没发言 
       <option value="90" >三个月内没发言 
       <option value="121">四个月内没发言 
       <option value="151">五个月内没发言 
       <option value="182">六个月内没发言 
       <option value="212">七个月内没发言 
       <option value="243">八个月内没发言 
       <option value="273">九个月内没发言 
       <option value="304">十个月内没发言 
       <option value="365">一年之内没发言 
       <option value="730">两年之内没发言 
       </select><BR>符合方式 
      <select name="delusetype"> 
      <option value="And">AND(所有资料符合)
      <option value="OR">OR(某一资料符合)
      </select> <BR>输入每次进行处理的用户数 <input type=text name="users" size=3 maxlength=3 value=300> 如果无法正常完成,请尽量减少这个数目,延长处理时间<BR>

        <input type=submit value="预 删 除">
        </form>
        ~;
	if (-e "${lbdir}data/delmember.cgi") {
	    open (FILE, "${lbdir}data/delmember.cgi");
	    @delmembers = <FILE>;
	    close (FILE);
	    $delmembersize = @delmembers;
	    $delmembersize --;
	    $pretime=$delmembers[0];
		if ($delmembersize ne "0") {
	    chomp $pretime;
    	    $nowtime = time;
    	    $nowtime = $nowtime - 3*24*3600;
    	    if ($nowtime > $pretime) {
    	    	$oooput = qq~距离上次预删除时间已经超过3天了 [<a href=$thisprog?action=delok>确定删除</a>]~;
    	    }
    	    else {
    	    	$oooput = qq~距离上次预删除时间还未到3天 [<a href=$thisprog?action=delok>不管,强制删除</a>]~;
    	    }
    	    $pretime=&dateformat($pretime);
    	    print qq~
        	上次预删除时间:$pretime (预删除用户个数: $delmembersize ) [<a href=$thisprog?action=canceldel>取消预删除</a>]<BR>
        	$oooput [<a href=$thisprog?action=viewdelmembers>查看预删除会员列表</a>]
    	    ~;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -