添加管理员:
核心代码
<form action="doAdminAction.php?act=addAdmin" method="post" >
<table width="70%" border="1" cellpadding="5" cellspacing="0" bgcolor="#cccccc">
<tr>
<td align="right">用户名</td>
<td><input type="text" name="userName" placeholder="请输入用户名"/></td>
</tr>
<tr>
<td align="right">管理员密码</td>
<td><input type="password" name="passWord" placeholder="请输入密码"/></td>
</tr>
<tr>
<td align="right">确认管理员密码</td>
<td><input type="password" name="passWord2" placeholder="确认密码"/></td>
</tr>
<tr>
<td align="right">邮箱</td>
<td><input type="email" name="email" placeholder="请输入邮箱"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="添加管理员"/></td>
</tr>
</table>
</form>
界面
逻辑:
1.表格form提交表单,提交到doAdminAction.php,传入参数act,值是addAdmin
doAdminAction.php
<?php
require_once 'include/common.inc.php';
checkUser();
$act = isset($_GET['act']) ? $_GET['act'] : null;
$id = isset($_GET['id']) ? intval($_GET['id']) :null;
if ($act == 'addAdmin')
{
$res = addAdmin();
}
捕获act参数,然后执行addAdmin()函数
/**
* 添加管理员
* @return string
*/
function addAdmin()
{
global $con;
$arr['username'] = $_POST['userName'];
$passWord = $_POST['passWord'];
$passWord2 = $_POST['passWord2'];
if ($passWord !== $passWord2) {
return "<a href='addAdmin.php'>输入密码不一致,请重新输入</a>";
}else{
$arr['password'] = md5($_POST['passWord']);
$arr['email'] = $_POST['email'];
$res = insert($con,'wukong_admin',$arr);
if ($res)
{
$res = '管理员添加成功'."<br>"."<a href='addAdmin.php'>继续添加管理员</a>|<a href='listAdmin.php'>查看管理员</a> ";
}else{
$res = '管理员添加失败'."<br>"."<a href='addAdmin.php'>重新添加管理员</a>|<a href='listAdmin.php'>查看管理员</a> ";
}
}
return $res;
}
addAdmin里执行的不是最原始的php的sql函数,是一个封装好的。insert函数(插入一条记录)。具体内容为:
/**
* 插入一条记录
* @param $link
* @param $table
* @param $arr
* @return int|string
*/
function insert($link,$table,$arr){
$key = '`'.join('`,`',array_keys($arr)).'`';
$value = "'".join("','",array_values($arr))."'";
$sql = "insert into $table({$key}) values({$value})";
$res = mysqli_query($link,$sql);
if (!$res)
{
echo '数据库插入失败 '.mysqli_error($link);
}else{
return mysqli_insert_id($link);
}
}
管理员列表
管理员列表的显示:
<?php
require_once 'include/common.inc.php';
checkUser();
global $con;
// $sql = "select * from wukong_admin";
$sql ="select id,username,email from wukong_admin";
$rows = fetchAll($con,$sql);
?>
<table class="table" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th width="15%">编号</th>
<th width="25%">管理员名称</th>
<th width="30%">管理员邮箱</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php $i=1;?>
<?php foreach($rows as $row): ?>
<tr>
<td><input type="checkbox" id="c1" class="check"><label for="c1" class="label"></label><?php echo $i; ?></td>
<td><?php echo $row['username'];?></td>
<td><?php echo $row['email'];?></td>
<td align="center"><input type="button" value="修改" class="btn" ONCLICK="editAdmin(<?php echo $row['id'];?>)">
<input type="button" value="修改密码" onclick="editPassword(<?php echo $row['id']; ?>)" class="btn" >
<input type="button" value="删除" onclick="delAdmin(<?php echo $row['id'];?>)" class="btn" ></td>
</tr>
<?php $i++; endforeach; ?>
1.首先是一个表格把标题栏写出来,
2.下面的数据是通过一个自定义函数fetchAll获取全部数据,返回一个二维数组,用$rows接收
3.然后在php 的foreach循环里用echo打印一下就可以了(键名索引)
添加:左上角的添加就是用一个按钮,添加一个点击事件,当点击的时候,跳转到添加页面
<div class="bui_select">
<input type="button" value="添 加" class="add" onclick="window.location.href='addAdmin.php'">
</div>
修改
点击修改时,触发点击事件,调用编写的editAdmin函数
要传入修改的管理员的id
然后在跳转的时候同样传入id,还有要执行的操作参数act
<input type="button" value="修改" class="btn" ONCLICK="editAdmin(<?php echo $row['id'];?>)">
function editAdmin(id){
// alert(id);
window.location.href="editAdmin.php?act=editEmail&id="+id;
}
传递到editAdmin.php后
<?php
require_once 'include/common.inc.php';
checkUser();
$id = isset($_GET['id']) ? $_GET['id'] :null;
//强制转换为数字 防止非法字符输入
$id = intval($id);
$row = findAdmin($id);
if(!$row)
{
showMsg("参数错误!",'listAdmin.php');
// echo "参数错误|<a href=''>查看管理员列表</a>";
//不加exit 下面的还可以执行
exit();
}
?>
查询一下有没有这个管理员,没有的话,报错,退出
有的话,
<form action="doAdminAction.php?act=editEmail&id=<?php echo $id; ?>" method="post" >
<table width="70%" border="1" cellpadding="5" cellspacing="0" bgcolor="#cccccc">
<tr>
<td align="right">邮箱</td>
<!-- placeholder改成value-->
<td><input type="email" name="email" value="<?php echo $row['email'] ?>"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="修改管理员"/></td>
</tr>
</table>
</form>
填入需要修改的邮箱,然后post提交。
提交到doAdminAction页面,带上两个参数,行为act和管理员id
doAdminAction.php
调用editEmail函数
/**
* 修改管理员邮箱
* @param $id
* @return string
*/
function editEmail($id)
{
// echo $id;
$id = intval($id);
global $con;
$arr['email'] = $_POST['email'];
$where ="id = $id";
$res = update($con,'wukong_admin',$arr,$where);
if($res >=0)
{
$res = "管理员邮箱修改成功| <a href='listAdmin.php'>查看管理员列表</a>";
}else{
$res = "管理员邮箱修改失败| <a href='listAdmin.php'>查看管理员列表</a>";
}
return $res;
}
这里会接收id和修改后的邮箱,执行一个自定义的修改函数
update
/**
*更新数据库
* @param $link
* @param $table
* @param $arr
* @param null $where
*/
function update($link,$table,$arr,$where = null)
{
//这样修改对吗?? rows是啥
$rows = null;
foreach ($arr as $key => $value){
if ($rows == null)
{
$grep =null;
}else{
$grep = ',';
}
$rows .= $grep. '`'.$key.'`'.'='."'".$value."'";
}
$where = $where == null ? $where : "where {$where}";
$sql = "update $table set {$rows} $where";
// echo $sql.'<br>';
$res = mysqli_query($link,$sql);
if (!$res)
{
echo '数据库更新失败 '.mysqli_error($link);
}else{
return mysqli_affected_rows($link);
}
}