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

📄 setmembers.cgi

📁 绿叶网络小学校园网-完全适合小学的网站
💻 CGI
📖 第 1 页 / 共 2 页
字号:
#!/usr/bin/perl

#############################################################
# Ikonboard v2.1
# Copyright 2000 Ikondiscussion.com - All Rights Reserved
# Ikondiscussion is a trademark of Ikondiscussion.com
#
# Software Distributed by: Ikondiscussion.com
# Visit us online at http://www.ikondiscussion.com
# Email us on boards@ikondiscussion.com
#
# All files written by Matthew Mecham
#############################################################

#use CGI::Carp "fatalsToBrowser";          # Output errors to browser
use CGI qw(:standard);                    # Saves loads of work
$CGI::POST_MAX=1024 * 150;                # limit post data
$CGI::DISABLE_UPLOADS = 1;                # Disable uploads

eval {
($0 =~ m,(.*)/[^/]+,)   and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "ikon.lib";          # Require ikonboard ()
require "ikonadmin.lib";     # Require Admin func()
require "data/progs.cgi";    # Require prog names
require "data/boardinfo.cgi";# Require board info
require "data/styles.cgi";   # Require styles info
};
if ($@) {
    print header(-charset=>"gb2312"); print start_html(-title=>"ib2000 出错!");
    print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
    print end_html; exit;
}

$|++;                                     # Unbuffer the output

#################--- Begin the program ---###################

$thisprog = "setmembers.cgi";

$query = new CGI;

&checkVALIDITY;

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

$inmembername = cookie("adminname");
$inpassword   = cookie("adminpass");


print header(-charset=>"gb2312");       
&admintitle;
        
&getmember("$inmembername");
        
        
        if (($membercode eq "ad") && ($inpassword eq $password) && ($inmembername eq $membername)) {
            
            print qq~
            <tr><td bgcolor=#333333" colspan=2><font face=宋体 color=#FFFFFF>
            <b>欢迎来到论坛管理中心 / 用户管理</b>
            </td></tr>
            ~;
            
            my %Mode = ( 
            'updatecount'        =>    \&docount,
            'viewletter'         =>    \&viewletter,
            'edit'               =>    \&edit,        
            'deletemember'       =>    \&deletemember,
            'unban'              =>    \&unban
            );


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

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


sub memberoptions {

    $dirtoopen = "$ikondir" . "members";

    opendir (DIR, "$dirtoopen"); 
    @filedata = readdir(DIR);
    closedir (DIR);

    @sortedfile = sort(@filedata);
    @sortedfile = grep(/cgi$/,@sortedfile);

    foreach (@sortedfile) {
    	if ($_ =~ /^\w/) {
        $fr = substr($_, 0, 1);
        $fr =~ tr/a-z/A-Z/;
        }
        else {
           $fr =substr($_, 0, 2);
        }
        push(@letters,$fr);
        }

    @sortedletters = sort(@letters);

     
    print qq~
     
    <tr>
    <td bgcolor=#EEEEEE valign=middle align=center colspan=2>
    <font face=宋体 color=#990000><b>请选择一项</b>
    </td>
    </tr>          
                
    <tr>
    <td bgcolor=#FFFFFF valign=middle align=left colspan=2>
    <font face=宋体 color=#333333>1.<b><a href="$thisprog?action=updatecount">计算用户总数</a></b><br>
    将得到所有的用户数。
    </td>
    </tr>         
                
    <tr>
    <td bgcolor=#FFFFFF valign=middle align=left colspan=2>
    <font face=宋体 color=#333333>2.<b>查看、编辑、删除、禁止用户</b><br>
    点击下面的字母你可以查看到用户详细资料, 并可编辑、改变用户的信息。<br>
    禁止用户:只要简单的点击“编辑用户”在“用户属性”中选择“禁止用户”就可以。<br>
    删除用户:只要找到用户,点击删除就可以。<br><br>
    ~;
    
    $nowcount =0;
    foreach (@sortedletters) {
        $tempoutput .= qq~<br>~ if ($nowcount == int($nowcount/20)*20);
        unless ($_ eq "$ltr") {
            $tempoutput .= qq~&nbsp;<a href="$thisprog?action=viewletter&letter=$_">$_</a>&nbsp;~;
            $ltr = "$_";
  	    $nowcount ++;
            }
        }
    
    print qq~
    注册用户大致列表:<br>$tempoutput
    </td>
    </tr>           
                
                
                
    <tr>
    <td bgcolor=#FFFFFF valign=middle align=left colspan=2>
    <font face=宋体 color=#333333><BR>
    <b>注意事项:</b><p>
    如果您希望给您的用户一个自定义的头衔,只要编辑他(她)的资料。<br>
    这个论坛利用储存的发贴数来确定他们的成员身份.<br>
    如果您任命一个用户为版主,而他本身却没有自定义的头衔,那么就会自动添加一个版主头衔。
    如果他已有自定义的等级,那么他的原头衔将被保留。<br>
    版主只能够管理自己的论坛,但是他们也可以在其他论坛中使用 #Moderation 模式下的功能。<br>
    请确保您所提升的版主是可靠的。<br>
    版主也和坛主一样,不受灌水预防机制限制。<br>
    只有坛主才能够进入管理中心。<br><br>
    如果你禁止了一个用户,那么也同时禁止了用他们原名称、邮件、IP 地址重新注册的可能。
    </td>
    </tr>             
     ~;        
     
     } # end routne
     
     
##################################################################################
######## Subroutes (Do member count)  


sub docount {

    $dirtoopen = "$ikondir" . "members";

    opendir (DIR, "$dirtoopen"); 
    @filedata = readdir(DIR);
    closedir (DIR);

    @countvar = grep(/cgi$/,@filedata);
    
    $newtotalmembers = @countvar;
    
        require "$ikondir" . "data/boardstats.cgi";
        
        $filetomake = "$ikondir" . "data/boardstats.cgi";
        
        open(FILE, ">$filetomake");
        flock(FILE, 2) if ($OS_USED eq "Unix");
        print FILE "\$lastregisteredmember = \"$lastregisteredmember\"\;\n";
        print FILE "\$totalmembers = \"$newtotalmembers\"\;\n";
        print FILE "\$totalthreads = \"$totalthreads\"\;\n";
        print FILE "\$totalposts = \"$totalposts\"\;\n";
        print FILE "\n1\;";
        close (FILE);
    
        print qq~
        <tr>
        <td bgcolor=#FFFFFF valign=middle align=center colspan=2>
        <font face=宋体 color=#990000>
                    
        <b>计算用户总数</b><p>
                    
        <font color=#333333>当前共有 $newtotalmembers 个注册用户</font>
                    
        </td></tr>
         ~;
         
     } # end routine

##################################################################################
######## Subroutes (Do member count) 


sub viewletter {

    $dirtoopen = "$ikondir" . "members";

    opendir (DIR, "$dirtoopen"); 
    @filedata = readdir(DIR);
    closedir (DIR);

    @sortedfile = sort(@filedata);
    @sortedfile = grep(/cgi$/,@sortedfile);
    @sortedfile = sort alphabetically(@sortedfile);
    
    foreach (@sortedfile) {
    	if ($_ =~ /^\w/) {
        $fr = substr($_, 0, 1);
        $fr =~ tr/a-z/A-Z/;
        }
        else {
           $fr =substr($_, 0, 2);
        }
        push(@letters,$fr);
        }
    @sortedletters = sort(@letters);
    $nowcount =0;
    foreach (@sortedletters) {
        $tempoutput .= qq~<br>~ if ($nowcount == int($nowcount/20)*20);
        unless ($_ eq "$ltr") {
            $tempoutput .= qq~&nbsp;<a href="$thisprog?action=viewletter&letter=$_">$_</a>&nbsp;~;
            $ltr = "$_";
  	    $nowcount ++;
        }
    }

     
    print qq~
    <tr>
    <td bgcolor=#EEEEEE valign=middle align=center colspan=2>
    <font face=宋体 color=#990000><b>查看所有以 "$inletter" 开头的用户</b><p>
    注册用户大致列表:$tempoutput<BR><BR>
    </td>
    </tr>          
    <tr>
    <td bgcolor=#FFFFFF valign=middle align=center colspan=2>
    &nbsp;
    </td>
    </tr>          
    ~;
               
               
    foreach (@sortedfile) {
    	if ($_ =~ /^\w/) {
        $frr = substr($_, 0, 1);
        $frr =~ tr/a-z/A-Z/;
        }
        else {
           $frr =substr($_, 0, 2);
        }
        if ($inletter eq $frr) {
            $_ =~ s/\.cgi$//;
            $member = $_;
            &getmember("$member");
            &showmember;
            }
        }
        
   } # end route



##################################################################################
######## Subroutes (Show member) 


sub showmember {

    $joineddate = &longdate("$joineddate");
    
    $cleanmember = $member;
    $cleanmember =~ s/\_/ /g;
    
    ## Sort last post, and where
    
    ($postdate, $posturl, $posttopic) = split(/\%%%/,$lastpostdate);
    
    if ($postdate ne "没有发表过") {
        $postdate = &longdate("$postdate");
        $lastpostdetails = qq~最后发表 <a href="$posturl">$posttopic</a> 在 $postdate~;
        }
        else {
            $lastpostdetails = "没有发表过";
            }

    if ($membercode eq "banned") {
        $unbanlink = qq~ | [<a href="$thisprog?action=unban&member=$member">取消禁止发言</a>]~;
        }
    
    print qq~
    <tr>
    <td bgcolor=#EEEEEE valign=middle colspan=2 align=center><font face=$font color=$fontcolormisc><b><font color=$fonthighlight>"$cleanmember"</b> 的详细资料 &nbsp;&nbsp; [ <a href="$thisprog?action=edit&member=$member">编辑</a> ] | [ <a href="$thisprog?action=deletemember&member=$member">删除</a> ]$unbanlink</font></td></tr>
    <tr>
    <td bgcolor=#FFFFFF valign=middle width=30%><font face=宋体 color=#333333><b>注册时间:</b></font></td>
    <td bgcolor=#FFFFFF valign=middle><font face=宋体 color=#333333>$joineddate</font></td></tr>
    <tr>
    <td bgcolor=#FFFFFF valign=middle><font face=宋体 color=#333333><b>用户头衔:</b></font></td>
    <td bgcolor=#FFFFFF valign=middle><font face=宋体 color=#333333>$membertitle</font></td></tr>
    <tr>
    <td bgcolor=#FFFFFF valign=middle><font face=宋体 color=#333333><b>最后发表:</b></font></td>
    <td bgcolor=#FFFFFF valign=middle><font face=宋体 color=#333333>$lastpostdetails</font></td></tr>
    <tr>
    <td bgcolor=#FFFFFF valign=middle><font face=宋体 color=#333333><b>发表总数:</b></font></td>
    <td bgcolor=#FFFFFF valign=middle><font face=宋体 color=#333333>$numberofposts</font> 篇</td></tr>
    <tr>
    <td bgcolor=#FFFFFF valign=middle>&nbsp;</td>
    <td bgcolor=#FFFFFF valign=middle>&nbsp;</td></tr>
    
    ~;
    $unbanlink = "";
    } # end routine


⌨️ 快捷键说明

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