📄 admin.cgi
字号:
#!/usr/bin/perl
#######################################################
#
# 作者:飞云小侠
# 邮件:scud@126.com
# 网站:飞云飘渺
# 网址:http://www.coolwww.net
# 声明:版权所有,不得去除版权说明
#
#_____________________________________________
# 收集/整理: 网酷资讯 http://shining.yeah.net
######################################################
###管理员管理界面
eval {
($0 =~ m,(.*)/[^/]+,) && unshift (@INC, "$1"); # 得到当前位置: UNIX / or Windows /
($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1"); # 得到当前位置: Windows \
require ('cgi-lib.pl');
require "field_cfg.pl";
require "prg_cfg.pl";
require "scudlib.pl";
require "datalib.pl";
};
use Fcntl;
use AnyDBM_File;
&ReadParse(*input);
$db = "$datapath/$userdb";
$thisurl = $ENV{'SCRIPT_NAME'};
print "Content-type: text/html\n\n ";
if ($input{'login'})
{ &login; }
elsif ($input{'viewthis'}) { &view; }
elsif ($input{'deletethis'}) { &delete; }
else { &admin; }
exit;
####### 登陆主画面
sub admin {
&Header($prg_style,$prg_name,$prg_header);
if (-e "$adminpwd")
{
print qq~
<table cellspacing=0 border=0 cellpadding =5 width=500 align=center>
<tr><td><FONT FACE="宋体,Arial"><b>管理员登录(如果你不是管理员,请返回,谢谢.)</b></FONT></td></tr>
<tr><td class=hz><br>
<FONT FACE="宋体,Arial">
请输入你的用户名和密码登陆</font><br>
<FORM METHOD=POST ACTION=$thisurl>
<INPUT TYPE=HIDDEN NAME=login VALUE=" Log In ">
管理帐号:<INPUT TYPE=text NAME="adminname" SIZE=10 maxlength=20><br>
管理密码:<INPUT TYPE=PASSWORD NAME="adminpwd" SIZE=10 maxlength=20>
<br><br>
<INPUT TYPE=SUBMIT NAME=login class=hz VALUE=" 管理登录 ">
</FORM>
</td></tr></TABLE><br>
~;
&Footer($prg_footer);
exit;
}
else
{
$myhint = "<b>请上载密码文件!<br></b>密码文件不存在,不能使用管理功能!";
&myhint($myhint);
}
&Footer($prg_footer);
}
sub login
{
&checkadminpwd;
tie(%acc, 'AnyDBM_File', $db , $flags, 0666) || &error("不能打开数据库-- 用户数据库");
while ( ($key, $value) = each(%acc) ) {
my @accarray = split(//,$key);
$char{$accarray[0]}++;
$num++;
}
untie(%acc);
&Header($prg_style,$prg_name,$prg_header);
print qq~
<table cellspacing=0 border=0 cellpadding =5 width=$table_width bgcolor=$table_color align=center>
<tr align=center><td><FONT FACE="宋体,Arial" color=white><b>查看帐号</FONT></td></tr>
<tr align=center><td><br>当前帐号总数:<b>$num</b><br>
<table border=1 cellspacing=1 cellpadding=2 align=center><tr><td class=hz>
<FONT face=宋体,arial >字母排列</td><td class=hz><FONT face=宋体,arial > 用户数
</td></tr>
~;
my @char_set = ('0'..'9','a'..'z');
foreach $ch(@char_set)
{
if ($char{$ch})
{
print qq~
<form action=$thisurl method=post><tr><td>
<input type=hidden name=adminname value=\"$curadminname\">
<input type=hidden name=adminpwd value=\"$curadminpwd\">
<input type=hidden name=view value="$ch"><input type=submit name=viewthis class=hz value=" 查看 $ch ">
</td><td align=right class=hz><font face=宋体,arial>$char{$ch} </td></tr></form>
~;
}
}
print "</TABLE></td></tr></TABLE>";
&Footer($prg_footer);
exit;
}
sub view
{
&checkadminpwd;
&Header($prg_style,$prg_name,$prg_header);
print qq~
<table cellspacing=0 border=0 cellpadding =5 align=center>
<tr><td><FONT FACE="Arial"><b>管理帐号</FONT></td></tr>
<tr><td><FONT FACE="宋体,Arial">
<table cellpadding=1 border=1 cellspacing=0 bgcolor=#f0faff>
<tr>
<td><font face=宋体,arial class=hz><b>序号</b></td>
~;
for ($i=0;$i<$field_count;$i++)
{
if ( $field_save[$i] ne "2" )
{
print "<td><font face=宋体,arial class=hz align=center><b> $field_name[$i]</b></td>";
}
}
print "<td align=center><font face=宋体,arial class=hz color=red><b>管理</b></td></tr>";
tie(%acc, 'AnyDBM_File', $db , $flags, 0666) || &error("不能打开数据库-- 用户数据库");
while ( ($key, $value) = each(%acc) )
{
my @accarray = split(//,$key);
$num++;
if ($accarray[0] eq $input{'view'})
{
$tempdiv=quotemeta($div);
@userdata = split(/$tempdiv/,$value);
$username=$key;
@tempdata=();
@tempdata2=();
for ($j=0;$j<($pwd2_field-1);$j++)
{
$tempdata[$j]=$userdata[$j];
}
for ($j=($pwd2_field-1);$j<($field_count-2);$j++)
{
$tempdata2[$j-$pwd2_field+1]=$userdata[$j];
}
$mypwd=$userdata[$pwd_field-1];
@userdata =($username,@tempdata,$mypwd,@tempdata2);
print qq~
<form action="$thisurl" method=post>
<tr>
<td class=hz align=center><font face=宋体,arial size=-1> $num </td>
~;
for ($i=0;$i<$field_count;$i++)
{
@myattr=split(/,/,$field_attr{$i});
$mytype = $myattr[2];
if ( $field_save[$i] ne "2" )
{
print "<td class=hz align=center><font face=宋体,arial>$userdata[$i]</td>";
}
}
print qq~<td align=center class=hz>
<input type=submit name="deletethis" class=hz value=" 删除$key ">
<input type=hidden name=adminname value=\"$curadminname\">
<input type=hidden name=adminpwd value=\"$curadminpwd\">
<input type=hidden name="delete" value="$key">
</td></tr></form>
~;
}
}
untie(%acc);
print "</table></td></tr></table>";
exit;
}
sub delete
{
&checkadminpwd;
tie(%acc, 'AnyDBM_File', $db , $flags, 0666) || &error("不能打开数据库-- 用户数据库");
delete($acc{$input{'delete'}});
untie(%acc);
&myhint("<FONT face=宋体,arial ><b>帐号: <font color=red>$input{'delete'}</FONT> 被删除了</FONT>");
exit;
}
sub checkadminpwd {
open (ADMINFILE, "$adminpwd");
@pwdlist = <ADMINFILE>;
close (ADMINFILE);
$curadminname=$input{'adminname'};
$curadminpwd=$input{'adminpwd'};
$loginyes="";
if ( ($curadminpwd) and ($curadminname))
{
$curppwd = crypt($curadminpwd, aa);
foreach(@pwdlist)
{
# 密码文件格式: 帐号||密码||0
@admindata = split(/\|\|/,$_);
if (( $curadminname eq $admindata[0])&&($curppwd eq $admindata[1]))
{
$loginyes ="yes";
}
}
if ($loginyes ne "yes") { &myhint("错误的密码和帐号的组合"); }
}
else
{
&myhint("错误密码,错误帐号");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -