文章教程

11.7.1设计用户管理页面

9/17/2020 9:38:49 PM 人评论 次浏览

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]); /*地址*/?>&nbsp;</td>

<td align=center><?PHP echo($row[6]); /*Email*/?>&nbsp;</td>

<td align=center><?PHP echo($row[8]); /*手机*/?>&nbsp;</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 } ?>&nbsp;

figure_0247_0318

图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所示。

figure_0247_0319

图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所示。

figure_0248_0320

图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);

}

?>

教程类别