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

📄 setmembers.cgi

📁 绿叶网络小学校园网-完全适合小学的网站
💻 CGI
📖 第 1 页 / 共 2 页
字号:
##################################################################################
######## Subroutes (Edit member) 


sub edit {

    if ($checkaction eq "yes") {
    
    
    $innewpassword      = $query -> param('password');
    $inmembertitle      = $query -> param('membertitle');
    $inemailaddress     = $query -> param('emailaddress');
    $inhomepage         = $query -> param('homepage');
    $inaolname          = $query -> param('aolname');
    $inicqnumber        = $query -> param('icqnumber');
    $inlocation         = $query -> param('location');
    $innumberofposts    = $query -> param('numberofposts');
    $intimedifference   = $query -> param('timedifference');
    $inmembercode       = $query -> param('membercode');

    $inlocation = &cleaninput("$inlocation");
    
    
    if ($inpassword eq "")     { $blank = "yes"; }
    if ($inemailaddress eq "") { $blank = "yes"; }
    
    if ($blank eq "yes") {
    
        print qq ~
        <tr>
        <td bgcolor=#FFFFFF valign=middle align=center colspan=2><font face=宋体 color=#333333><b>必须输入用户密码、邮件地址</b></font></td></tr>
        ~;
        
        }
    

        # Sort out the private access
    
        
        $filetoopen = "$ikondir" . "data/allforums.cgi";
        open(FILE,"$filetoopen");
        flock(FILE,2) if ($OS_USED eq "Unix");
        @forums = <FILE>;
        close(FILE);
        
        foreach $forum (@forums) {
            chomp $forum;
            ($forumid, $trash) = split(/\|/,$forum);
            $namekey = "allow" . "$forumid";
            $tocheck = $query -> param("$namekey");
            if ($tocheck eq "yes") {
                $allowedforums2 .= "$forumid=$tocheck&";
                }
            }
            
        &getmember("$inmember");
    
        $memberfiletitle = $inmember;
        $memberfiletitle =~ s/ /\_/isg;

        

        # Add to ban lists (if required)

        if ($inmembercode eq "banned") { 
            
            $filetoopen = "$ikondir" . "data/banlist.cgi";
            open(FILE,">>$filetoopen");
            print FILE "$inmember|$inemailaddress|$ipaddress|\n";
            close(FILE);

            $banresult = "禁止 $membername 发言成功";
            }




        $filetomake = "$ikondir" . "members/$memberfiletitle.cgi";
        open(FILE, ">$filetomake");
        flock(FILE, 2) if ($OS_USED eq "Unix");
        print FILE "$membername|$innewpassword|$inmembertitle|$inmembercode|$innumberofposts|$inemailaddress|$showemail|$ipaddress|$inhomepage|$inaolname|$inicqnumber|$inlocation|$interests|$joineddate|$lastpostdate|$signature|$intimedifference|$allowedforums2|$useravatar|$misc1|$misc2|$misc3|$personalavatar|$personalwidth|$personalheight|";
        close(FILE);

                print qq~
                <tr>
                <td bgcolor=#EEEEEE valign=middle align=center colspan=2>
                <font face=宋体 color=#333333><b>所有信息已经保存</b><br><br>$banresult<br>
                </td></tr>
                ~;
    
    }
    
    else {
    
    
    
    $filetoopen = "$ikondir" . "data/allforums.cgi";
         open(FILE,"$filetoopen");
         flock(FILE,2) if ($OS_USED eq "Unix");
         @forums = <FILE>;
         close(FILE);

         
         foreach $forum (@forums) {
            chomp $forum;
            ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);   
            if ($privateforum eq "yes") { 
                $grab = "$forumid|$forumname";
                push(@newforums, $grab);
                }
            }
        $cleanmember = $inmember;
        $cleanmember =~ s/\_/ /g;
    
        &getmember("$inmember");
        
        if($privateforums) {
            @private = split(/&/,$privateforums);
            foreach $accessallowed (@private) {
                chomp $accessallowed;
                ($access, $value) = split(/=/,$accessallowed);
                $allowedentry2{$access} = $value;
                }
            }
    
        @allowedforums = sort alphabetically(@newforums);
        foreach $line (@allowedforums) {
            ($forumid, $forumname) = split(/\|/,$line);
            if ($allowedentry2{$forumid} eq "yes") { $checked = " checked"; }
            else { $checked = ""; }
            $privateoutput .= qq~<input type="checkbox" name="allow$forumid" value="yes"$checked>$forumname<br>\n~;
            }
            
    $memberstateoutput = qq~<select name="membercode"><option value="me">一般用户<option value="banned">禁止用户<option value="ad">论坛坛主<option value="mo">版主</select>~;
    
    $memberstateoutput =~ s/value=\"$membercode\"/value=\"$membercode\" selected/g;
    
    print qq~
    <form action="$thisprog" method=post>
    <input type=hidden name="action" value="edit">
    <input type=hidden name="checkaction" value="yes">
    <input type=hidden name="member" value="$inmember">
    <tr>
    <td bgcolor=#EEEEEE colspan=2><font face=宋体 color=#333333><b>要编辑的用户名称: </b>$membername</td>
    </tr>
    <tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>用户头衔:</b><br>您可以自定义一个头衔,<br>默认 Member 表示无头衔</td>
    <td bgcolor=#FFFFFF><input type=text name="membertitle" value="$membertitle"></td>
    </tr>
    <tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>发表总数:</b></td>
    <td bgcolor=#FFFFFF><input type=text name="numberofposts" value="$numberofposts"></td>
    </tr>
    <tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>密码:</b></td>
    <td bgcolor=#FFFFFF><input type=password name="password" value="$password"></td>
    </tr>
    <tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>邮件地址:</b></td>
    <td bgcolor=#FFFFFF><input type=text name="emailaddress" value="$emailaddress"></td>
    </tr><tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>主页地址:</b></td>
    <td bgcolor=#FFFFFF><input type=text name="homepage" value="$homepage"></td>
    </tr><tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>OICQ 号:</b></td>
    <td bgcolor=#FFFFFF><input type=text name="aolname" value="$aolname"></td>
    </tr><tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>ICQ 号:</b></td>
    <td bgcolor=#FFFFFF><input type=text name="icqnumber" value="$icqnumber"></td>
    </tr><tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>来自何方:</b></td>
    <td bgcolor=#FFFFFF><input type=text name="location" value="$location"></td>
    </tr><tr>
    ~;
   $timedifference = 0 if ($timedifference eq '');
   $tempoutput = "<select name=\"timedifference\"><option value=\"-23\">- 23<option value=\"-22\">- 22<option value=\"-21\">- 21<option value=\"-20\">- 20<option value=\"-19\">- 19<option value=\"-18\">- 18<option value=\"-17\">- 17<option value=\"-16\">- 16<option value=\"-15\">- 15<option value=\"-14\">- 14<option value=\"-13\">- 13<option value=\"-12\">- 12<option value=\"-11\">- 11<option value=\"-10\">- 10<option value=\"-9\">- 9<option value=\"-8\">- 8<option value=\"-7\">- 7<option value=\"-6\">- 6<option value=\"-5\">- 5<option value=\"-4\">- 4<option value=\"-3\">- 3<option value=\"-2\">- 2<option value=\"-1\">- 1<option value=\"0\">0<option value=\"1\">+ 1<option value=\"2\">+ 2<option value=\"3\">+ 3<option value=\"4\">+ 4<option value=\"5\">+ 5<option value=\"6\">+ 6<option value=\"7\">+ 7<option value=\"8\">+ 8<option value=\"9\">+ 9<option value=\"10\">+ 10<option value=\"11\">+ 11<option value=\"12\">+ 12<option value=\"13\">+ 13<option value=\"14\">+ 14<option value=\"15\">+ 15<option value=\"16\">+ 16<option value=\"17\">+ 17<option value=\"18\">+ 18<option value=\"19\">+ 19<option value=\"20\">+ 20<option value=\"21\">+ 21<option value=\"22\">+ 22<option value=\"23\">+ 23</select>";
   $tempoutput =~ s/value=\"$timedifference\"/value=\"$timedifference\" selected/;
   
   print qq~
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>时差:</b></td>
    <td bgcolor=#FFFFFF>$tempoutput</td>
    </tr><tr>
    <td bgcolor=#FFFFFF align=left colspan=2><font face=宋体 color=#333333><b>私有论坛访问权限:</b><br>
    $privateoutput</td>
    </tr><tr>
    <td bgcolor=#FFFFFF><font face=宋体 color=#333333><b>用户类型:</b><br>注意:坛主为论坛管理员,有绝对高的权限。<br>所以务必少添加此类型的用户。</td>
    <td bgcolor=#FFFFFF>$memberstateoutput</td>
    </tr><tr>
    <td colspan=2 bgcolor=#EEEEEE align=center><input type=submit value="提 交" name=submit></form></td>
    </tr>
    ~;
    
    } # end else
    
} # endroute


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

sub deletemember {

if ($checkaction eq "yes") {

    # Check to see if they were the last member to register

    require "$ikondir" . "data/boardstats.cgi";
        

    if($inmember eq "$lastregisteredmember") { #start
        
        # If they were, go through the members, and find the previous last registered

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

        opendir (DIR, "$dirtoopen"); 
        @filedata = readdir(DIR);
        closedir (DIR);
        @inmembers = grep(/cgi$/,@filedata);

        local($highest) = 0;

        foreach (@inmembers) {
            $_ =~ s/\.cgi$//g;
            &getmember("$_");
            if (($joineddate > $highest) && ($inmember ne $membername)) {
                $highest = $joineddate;
                $memberkeep = $membername;
                }
        }
        


        $filetomake = "$ikondir" . "data/boardstats.cgi";
        $totalmembers--;
        open(FILE, ">$filetomake");
        flock(FILE, 2) if ($OS_USED eq "Unix");
        print FILE "\$lastregisteredmember = \"$memberkeep\"\;\n";
        print FILE "\$totalmembers = \"$totalmembers\"\;\n";
        print FILE "\$totalthreads = \"$totalthreads\"\;\n";
        print FILE "\$totalposts = \"$totalposts\"\;\n";
        print FILE "\n1\;";
        close (FILE);
        } # end if new/delete member

    else {
        require "$ikondir" . "data/boardstats.cgi";

        $filetomake = "$ikondir" . "data/boardstats.cgi";
        $totalmembers--;
        open(FILE, ">$filetomake");
        flock(FILE, 2) if ($OS_USED eq "Unix");
        print FILE "\$lastregisteredmember = \"$lastregisteredmember\"\;\n";
        print FILE "\$totalmembers = \"$totalmembers\"\;\n";
        print FILE "\$totalthreads = \"$totalthreads\"\;\n";
        print FILE "\$totalposts = \"$totalposts\"\;\n";
        print FILE "\n1\;";
        close (FILE);
        } # end if else

        # Delete the database for the member

        $filetounlink = "$ikondir" . "members/$inmember.cgi";
        unlink $filetounlink;

        print qq~
        <tr>
        <td bgcolor=#EEEEEE valign=middle align=center colspan=2>
        <font face=宋体 color=#333333><b>用户已经从数据库中完全删除了</b>
        </td></tr>
         ~;


} # end checkaction else

else {

        $cleanedmember = $inmember;
        $cleanedmember =~ s/\_/ /g;

        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=center colspan=2>
        <font face=宋体 color=#333333>只有点击下面的链接才可以删除用户<b>"$cleanedmember"</b><p>
        >> <a href="$thisprog?action=deletemember&checkaction=yes&member=$inmember">删除用户</a> <<
        </td></tr>
        </table></td></tr></table>
        ~;
        }

} # end routine


sub unban {

        &getmember("$inmember");
    
        $memberfiletitle = $inmember;
        $memberfiletitle =~ s/ /\_/isg;

        # Remove from ban lists
            
        $filetoopen = "$ikondir" . "data/banlist.cgi";
        open(FILE,"$filetoopen");
        @bandata = <FILE>;
        close(FILE);

        open(FILE,">$filetoopen");
        flock (FILE, 2) if ($OS_USED eq "Unix");
        foreach (@bandata) {
            chomp $_;
            ($bannedname, $bannedemail, $bannedip) = split(/\|/,$_);
            $bannedname =~ s/\_/ /g;
            unless ($bannedname eq $membername) { print FILE "$_\n"; }
            }
        close(FILE);
            

        $filetomake = "$ikondir" . "members/$memberfiletitle.cgi";
        open(FILE, ">$filetomake");
        flock(FILE, 2) if ($OS_USED eq "Unix");
        print FILE "$membername|$password|$membertitle|me|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$allowedforums|$useravatar|$misc1|$misc2|$misc3|$personalavatar|$personalwidth|$personalheight|";
        close(FILE);

        print qq~
        <tr>
        <td bgcolor=#EEEEEE valign=middle align=center colspan=2>
        <font face=宋体 color=#333333><b>$membername 已经取消禁止发言</b>
        </td></tr>
        ~;

} # end route


print qq~</td></tr></table></body></html>~;
exit;





⌨️ 快捷键说明

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