11.7 管理员用户管理
系统管理员可以对其他用户信息进行管理,也可以修改自己的用户密码。本节介绍管理员用户管理功能的实现。
11.7.1 设计用户管理页面
在admin\index.php中,单击“用户管理\用户列表”超链接,执行admin\UserList.php,显示系统用户列表,如图11-10所示。
显示用户列表的代码如下:
<?PHP
include('..\Class\Users.php');
$obj = new Users();
$results = $obj->GetUserslist();
$rCount=0;
//循环显示所有的用户数据,同时画出表格
while($row = $results->fetch_row())
{
$rCount++;
?>
<tr>
<td align=center><?PHP echo($row[0]); /*用户名*/ ?></td>
<td align=center><?PHP echo($row[2]); /*用户姓名*/?></td>
<td align=center><?PHP echo($row[4]); /*地址*/?> </td>
<td align=center><?PHP echo($row[6]); /*Email*/?> </td>
<td align=center><?PHP echo($row[8]); /*手机*/?> </td>
<td align="center">
<?PHP if($row[0]!="Admin")
{
?>
<a href=UserDelt.php?userid=<?PHP echo($row[0]); ?> onClick="if(confirm('确定删除此用户?')){return newwin(this.href);}return false;">删除</a>
<?PHP } ?>
图11-10 用户管理页面
程序首先定义一个Users对象obj,然后再调用obj->GetUserslist()函数获取所有用户信息到结果集$results中,最后使用while循环语句显示结果集中的所有记录信息。
11.7.2 删除用户信息
在每条用户信息的后面都定义了一个“删除”超链接,定义代码如下:
<a href=UserDelt.php?userid=<? echo($row[0]); ?> onClick="if(confirm('确定删除此用户?')){return newwin(this.href);}return false;">删除</a>
在超链接的 onClick 事件中,使用 JavaScript 语句 confirm()定义了一个确认删除的对话框,如图11-11所示。
图11-11 确认删除对话框
当用户单击“确定”按钮时,confirm()函数返回true。此时,程序调用 newwin(this.href)函数,打开一个新窗口运行UserDelt.php。newwin()函数是一个JavaScript函数,其代码如下:
<script language="JavaScript">
function newwin(url) {
var
newwin=window.open(url,"newwin","toolbar=no,location=no,directories=no,status=no,menub ar=no, scrollbars=yes,resizable=yes,width=400,height=380");
newwin.focus();
return false;
}
</script>
程序调用JavaScript函数window.open(),打开参数中指定的url网址。函数的参数定义了窗口的样式,如toolbar=no表示没有工具栏,location=no表示没有地址栏等。
UserDelt.php的功能是删除用户信息,参数userid表示要删除的用户名。UserDelt.php的主要代码如下:
<?PHP
//只有管理员有强制删除商品的权限
include('..\class\Users.php');
$UserId=$_GET["userid"];
$obj = new Users();
$obj->delete($UserId);
print("<h3>用户信息成功删除</h3>");
?>
程序调用Users->delete()函数删除指定的用户信息。
11.7.3 设计密码修改页面
在admin\index.php中,单击“用户管理\密码修改”超链接,执行admin\AdminPwdChange.php,允许系统管理员修改登录密码,如图11-12所示。
图11-12 密码修改页面
当管理员单击“提交”按钮时,将提交页面。代码如下:
<form method="POST" action="AdminSavePwd.php?aid=<?PHP echo($uid); ?>" name="myform"onsubmit="return ChkFields()">
函数ChkFields的功能是对输入的新密码进行校验,代码如下:
<Script Language="JavaScript">
function ChkFields() {
if (document.myform.OriPwd.value=='') {
alert("请输入原始密码!")
return false
}
if (document.myform.Pwd.value.length<6) {
alert("新密码长度大于等于6!")
return false
}
if (document.myform.Pwd.value!=document.myform.Pwd1.value) {
alert("两次输入的新密码必须相同!")
return false
}
return true
}
</Script>
程序将检查新密码是否输入、新密码长度是否大于等于6位和两次输入的新密码是否相同,只有满足以上条件,才执行AdminSavePwd.php文件。
AdminSavePwd.php页面中,程序调用Users->CheckUser()函数判断表Users中是否存在该用户,旧密码是否正确,如果都满足以上要求,则调用Users->setpwd()函数更改密码。代码如下:
<?PHP
session_start();
$OriPwd=$_POST["OriPwd"];
$Pwd=$_POST["Pwd"];
//判断是否存在此用户
include('..\Class\Users.php');
$obj = new Users();
$obj->UserId=$_SESSION["UserName"];
$obj->UserPwd=$OriPwd;
if($obj->CheckUser()==false)
{
print("不存在此用户名或密码错误!");
?>
<Script Language="JavaScript">
setTimeout("history.go(-1)",1600);
</Script>
<?PHP
}
else
{
$obj->UserPwd=$Pwd;
$obj->setpwd($obj->UserId);
print("<h2>更改密码成功!</h2>");
$_SESSION["UserPwd"]=trim($Pwd);
}
?>