📄 setmembers.cgi
字号:
##################################################################################
######## 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 + -