博客系统开发_管理员管理(三)

管理员管理的功能包含

1、显示所有的管理员Table

2、添加管理员

3、删除管理员

4、修改管理员

界面上包含

1、一个通栏菜单,

2、显示当前登录用户

3、用户有个退出的功能

一、管理员管理功能开发

1.1、添加管理员

1.1.1 添加新的用户控制器AuserController.class.php

在用户控制器中AuserController.class.php中的index方法中调用自己的模板

$this->display();  //调用自己的模板

1.1.2、模板的编写

到View下面创建Auser文件夹,在Auser下创建index.php

1、通栏菜单_nav.php  在view的根目录中

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Admin</a>
    </div>
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href=" <?php echo U(‘/Admin/Blog/index‘); ?> ">博客管理<span class="sr-only">(current)</span></a></li>
        <li><a href=" <?php echo U(‘/Admin/Auser/index‘); ?>">管理员管理</a></li>
        <li><a href=" <?php echo U(‘/Admin/Setting/index‘); ?> ">系统设置</a></li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">欢迎 <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">退出</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

在index.php中包含菜单HTML

<?php  include(THEME_PATH.‘/nav.php‘);?>

注:(1)THEME_PATH 表示当前主题的目录。此处指View文件夹的目录

2、导航及表格代码

<div class="page-header">
                <h1>管理员列表 <small class="pull-right"><a href="<?php echo U("/Admin/Auser/add"); ?>" class="btn btn-default ">添加管理员</a></small></h1>
            </div>
            <table class="table table-striped">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>用户</th>
                        <th>密码</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                <?php foreach($data[‘users‘] as $user): ?>
                    <tr>
                        <th scope="row"><?php echo $user[‘aid‘] ;?></th>
                        <td><?php echo $user[‘auser‘] ;?></td>
                        <td><?php echo $user[‘apass‘] ;?></td>
                        <td>
                            <a  href="<?php echo U("/Admin/Auser/add"); ?>?aid=<?php echo $user[‘aid‘]; ?>">编辑</a>
                            <a  href="<?php echo U("/Admin/Auser/del"); ?>?aid=<?php echo $user[‘aid‘] ;?>">删除</a>
                        </td>
                    </tr>
                    <?php  endforeach; ?>
                </tbody>
            </table>            

3、表格中的数据显示_到控制器中查数据

index方法中,(1)取出全部数据 (2)赋值到数组中 (3)将数据传递给模板

                //实例化数据模型
        $admin = D("admin");
        //取出所有数据
        $users = $admin->select();
        //定义数组
        $data=array();
        $data[‘users‘] = $users;   //给数据添加键值对
        //对模板变量赋值 ==$this->data =  $data;
        $this->assign("data",$data);  

注:(1)使用D函数实例化,还有模板中需要使用数据,需要将数据传递给模板,使用assign方法

4、模板中循环使用

1.1.3 实现添加管理员功能

1、在AuserController控制器中实现一个add方法,在add方法中调用自己的模板

2、编写add模板add.php

<!DOCTYPE HTML>
<html>
    <head>
        <title>添加管理员</title>
        <script src="/Public/js/jquery-3.2.1.js"></script>
        <link rel="stylesheet" href="/Public/bootstrap-3.3.7/css/bootstrap.css" />
        <script src="/Public/bootstrap-3.3.7/js/bootstrap.js"></script>
    </head>
    <body>
        <div class="container">
            <?php  include(THEME_PATH.‘/nav.php‘);?>
            <div class="page-header">
                <h1>添加管理员 <small class="pull-right"><a href="<?php echo U("/Admin/Auser/index"); ?>" class="btn btn-default ">返回</a></small></h1>
            </div>
            <form class="form-horizontal" action=" <?php echo U("/Admin/Auser/save") ;?> ?aid=<?php echo $user[‘aid‘]; ?>" method="post">
                <div class="form-group">
                    <label  class="col-sm-2 control-label">用户</label>
                <div class="col-sm-8">
                    <input type="text" class="form-control" name= "auser" id="auser" placeholder="请输入用户名" value="<?php echo $user[‘auser‘]; ?>">
                </div>
                </div>
                <div class="form-group">
                    <label  class="col-sm-2 control-label">密码</label>
                    <div class="col-sm-8">
                        <input type="password" class="form-control" name="apass" id="apass" placeholder="请输入密码"  value="<?php echo $user[‘apass‘]; ?>">
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-8">
                        <button type="submit" class="btn btn-primary">提交注册</button>
                    </div>
                </div>
            </form>
        </div>
    </body>
</html>

注:(1)add.php中表单提交的地址

<?php echo U("/Admin/Auser/save") ;?>

3、回到Auser控制器中编写save方法

                 //1、实例化数据模型
        $admin = D("admin");
        if(IS_POST){
            //2、获取用户输入
             $auser =  I ("post.auser") ;
             $apass =  I ("post.apass");

             //验证输入的合法性,使用框架下的rules
             $rule = array(
                array(‘auser‘,‘require‘,"用户不能为空"),
                array(‘apass‘,‘require‘,"密码不能为空"),
             );

             if( !$admin->validate($rule)->create()){
                 return $this->error($admin->getError(),"/Admin/Auser/add");
             }            

             //3、验证用户唯一性
             $where =array(
                 ‘auser‘ => $auser,
                 );
             $row = $admin->where($where)->find();
             if($row){
                 return $this->error("用户名已存在","/Admin/Auser/add");
             }

             //4、插入数据
             $insert =array(
                 ‘auser‘=>$auser,
                 ‘apass‘=>$apass,
             );
             $is = $admin->add($insert);

             if($is){
                return $this->success("操作成功","/Admin/Auser/index"); //跳转到列表页
             }
             else{
                return $this->error("操作失败","/Admin/Auser/add");  //跳转回添加页
             }
        }

注:(1)使用TP框架下的数据验证规则

(2)组织插入数组$insert

(3)使用TP框架下的数据插入方法

1.2 删除管理员

1.2.1 HTML中链接提交页面

<a  href="<?php echo U("/Admin/Auser/del"); ?>?aid=<?php echo $user[‘aid‘] ;?>">删除</a>

1.2.2  Auser控制器中编写del方法

$aid = I(‘get.aid‘);
D("admin")->where( array(‘aid‘=>$aid))->delete();
return $this->redirect("/Admin/Auser/index");        

1.3 修改管理员

1.3.1 HTML中链接提交页面

<a  href="<?php echo U("/Admin/Auser/add"); ?>?aid=<?php echo $user[‘aid‘]; ?>">编辑</a>

1.3.2 Auser控制器中编写add方法

1、获取到选中用户,将相关数据显示到模板中

                        //获取到aid
            $aid = I(‘get.aid‘);
            $admin = D("admin");
            $user=array(
                ‘auser‘=>"",
                ‘apass‘=>"",
            );
            //找到aid对应的数据
            if( $aid>0 ){
                $user = $admin ->where( array(‘aid‘=>$aid) )->find();
            }
            $this->assign("user",$user);  //将数组传递给模板
            //在模板中显示
            $this->display();  //调用自己的模板                

2、模板中显示数据

<input type="text" class="form-control" name= "auser" id="auser" placeholder="请输入用户名" value="<?php echo $user[‘auser‘]; ?>">

<input type="password" class="form-control" name="apass" id="apass" placeholder="请输入密码"  value="<?php echo $user[‘apass‘]; ?>">

3.点击提交后进入save方法

前面模型实例化、获取aid,数据的验证和添加管理员时共用,判断如果传入aid 则为修改

                          if( $aid>0 ){    //修改管理员
                 //验证
                 $where = array(
                     ‘auser‘=>$auser,
                     ‘aid‘=>array(‘NEQ‘,$aid),
                  );
                $isArr = $admin->where ($where)->find();
                var_dump($isArr);
                if($isArr){
                 return $this->error("存在相同用户名","/Admin/Auser/add?aid=".$aid);
                }
                else{
                     $update =array(
                     ‘auser‘=>$auser,
                     ‘apass‘=>$apass,
                 );
                 $admin->where( array(‘aid‘=>$aid) )->save($update);
                 return $this->success("操作成功","/Admin/Auser/index");
                }
             }

二、管理员管理代码

1.nav.php   通栏菜单页

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Admin</a>
    </div>
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href=" <?php echo U(‘/Admin/Blog/index‘); ?> ">博客管理<span class="sr-only">(current)</span></a></li>
        <li><a href=" <?php echo U(‘/Admin/Auser/index‘); ?>">管理员管理</a></li>
        <li><a href=" <?php echo U(‘/Admin/Setting/index‘); ?> ">系统设置</a></li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">欢迎 <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">退出</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

2.index.php  列表页界面

<!DOCTYPE HTML>
<html>
    <head>
        <title>管理员管理</title>
        <script src="/Public/js/jquery-3.2.1.js"></script>
        <link rel="stylesheet" href="/Public/bootstrap-3.3.7/css/bootstrap.css" />
        <script src="/Public/bootstrap-3.3.7/js/bootstrap.js"></script>
    </head>
    <body>

        <div class="container">
            <?php  include(THEME_PATH.‘/nav.php‘);?>
            <div class="page-header">
                <h1>管理员列表 <small class="pull-right"><a href="<?php echo U("/Admin/Auser/add"); ?>" class="btn btn-default ">添加管理员</a></small></h1>
            </div>
            <table class="table table-striped">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>用户</th>
                        <th>密码</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                <?php foreach($data[‘users‘] as $user): ?>
                    <tr>
                        <th scope="row"><?php echo $user[‘aid‘] ;?></th>
                        <td><?php echo $user[‘auser‘] ;?></td>
                        <td><?php echo $user[‘apass‘] ;?></td>
                        <td>
                            <a  href="<?php echo U("/Admin/Auser/add"); ?>?aid=<?php echo $user[‘aid‘]; ?>">编辑</a>
                            <a  href="<?php echo U("/Admin/Auser/del"); ?>?aid=<?php echo $user[‘aid‘] ;?>">删除</a>
                        </td>
                    </tr>
                    <?php  endforeach; ?>
                </tbody>
            </table>
        </div>
    </body>
</html>

3.add.php  添加页界面

<!DOCTYPE HTML>
<html>
    <head>
        <title>添加管理员</title>
        <script src="/Public/js/jquery-3.2.1.js"></script>
        <link rel="stylesheet" href="/Public/bootstrap-3.3.7/css/bootstrap.css" />
        <script src="/Public/bootstrap-3.3.7/js/bootstrap.js"></script>
    </head>
    <body>
        <div class="container">
            <?php  include(THEME_PATH.‘/nav.php‘);?>
            <div class="page-header">
                <h1>添加管理员 <small class="pull-right"><a href="<?php echo U("/Admin/Auser/index"); ?>" class="btn btn-default ">返回</a></small></h1>
            </div>
            <form class="form-horizontal" action=" <?php echo U("/Admin/Auser/save") ;?> ?aid=<?php echo $user[‘aid‘]; ?>" method="post">
                <div class="form-group">
                    <label  class="col-sm-2 control-label">用户</label>
                <div class="col-sm-8">
                    <input type="text" class="form-control" name= "auser" id="auser" placeholder="请输入用户名" value="<?php echo $user[‘auser‘]; ?>">
                </div>
                </div>
                <div class="form-group">
                    <label  class="col-sm-2 control-label">密码</label>
                    <div class="col-sm-8">
                        <input type="password" class="form-control" name="apass" id="apass" placeholder="请输入密码"  value="<?php echo $user[‘apass‘]; ?>">
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-8">
                        <button type="submit" class="btn btn-primary">提交注册</button>
                    </div>
                </div>
            </form>
        </div>
    </body>
</html>

4、AuserController.class.php  业务编写(CURD)

  1 <?php
  2 namespace Admin\Controller;
  3 class AuserController extends AdmController {
  4
  5      /*
  6       *列表显示
  7       */
  8     public function index(){
  9
 10         //实例化数据模型
 11         $admin = D("admin");
 12         //取出所有数据
 13         $users = $admin->select();
 14         //定义数组
 15         $data=array();
 16         $data[‘users‘] = $users;   //给数据添加键值对
 17         //对模板变量赋值 ==$this->data =  $data;
 18         $this->assign("data",$data);
 19         $this->display();  //调用自己的模板
 20     }
 21
 22      /*
 23       *修改管理员
 24       */
 25       public function add(){
 26             //获取到aid
 27             $aid = I(‘get.aid‘);
 28             $admin = D("admin");
 29             $user=array(
 30                 ‘auser‘=>"",
 31                 ‘apass‘=>"",
 32             );
 33             //找到aid对应的数据
 34             if( $aid>0 ){
 35                 $user = $admin ->where( array(‘aid‘=>$aid) )->find();
 36             }
 37             $this->assign("user",$user);  //将数组传递给模板
 38             //在模板中显示
 39             $this->display();  //调用自己的模板
 40     }
 41
 42     /*
 43      *删除管理员
 44      */
 45     public function del(){
 46         $aid = I(‘get.aid‘);
 47         D("admin")->where( array(‘aid‘=>$aid))->delete();
 48         return $this->redirect("/Admin/Auser/index");
 49     }
 50
 51      /*
 52       *保存数据
 53       */
 54     public function save(){
 55         $aid = I(‘get.aid‘);
 56         //1、实例化数据模型
 57         $admin = D("admin");
 58         if(IS_POST){
 59             //获取用户输入
 60              $auser =  I ("post.auser") ;
 61              $apass =  I ("post.apass");
 62
 63              //验证输入的合法性,使用框架下的rules
 64              $rule = array(
 65                 array(‘auser‘,‘require‘,"用户不能为空"),
 66                 array(‘apass‘,‘require‘,"密码不能为空"),
 67              );
 68
 69              if( !$admin->validate($rule)->create()){
 70                  return $this->error($admin->getError(),"/Admin/Auser/add");
 71              }
 72
 73              if( $aid>0 ){    //修改管理员
 74                  //验证
 75                  $where = array(
 76                      ‘auser‘=>$auser,
 77                      ‘aid‘=>array(‘NEQ‘,$aid),
 78                   );
 79                 $isArr = $admin->where ($where)->find();
 80                 var_dump($isArr);
 81                 if($isArr){
 82                  return $this->error("存在相同用户名","/Admin/Auser/add?aid=".$aid);
 83                 }
 84                 else{
 85                      $update =array(
 86                      ‘auser‘=>$auser,
 87                      ‘apass‘=>$apass,
 88                  );
 89                  $admin->where( array(‘aid‘=>$aid) )->save($update);
 90                  return $this->success("操作成功","/Admin/Auser/index");
 91                 }
 92              }
 93              else{       //添加管理员
 94                  //验证用户唯一性
 95                  $where =array(
 96                      ‘auser‘ => $auser,
 97                      );
 98                  $row = $admin->where($where)->find();
 99                  if($row){
100                      return $this->error("用户名已存在","/Admin/Auser/add");
101                  }
102
103                  //插入数据
104                  $insert =array(
105                      ‘auser‘=>$auser,
106                      ‘apass‘=>$apass,
107                  );
108                  $is = $admin->add($insert);
109                  if($is){
110                     return $this->success("操作成功","/Admin/Auser/index");
111                  }
112                  else{
113                     return $this->error("操作失败","/Admin/Auser/add");
114                  }
115             }
116         }
117     }
118 }

时间: 2024-11-10 18:55:57

博客系统开发_管理员管理(三)的相关文章

博客系统开发_用户登录(二)

用户登录过程实质上是数据库查询的功能 一.页面设计 进入Admin模块下View中新建Login文件夹,新建index.php文件,在index.php中进行用户登录页面设计 代码如下 <!DOCTYPE HTML> <html> <head> <title>管理员登录</title> <script src="/Public/js/jquery-3.2.1.js"></script> <link

挑战年薪20万python web工程师:大型博客系统开发

我们从招聘广告中总结出,Python web工程师须具有以下技能: 扎实的Python编程基础,熟练掌握Python开发: 掌握Python web开发框架Django.Flask; 熟悉MySQL, 熟练运用SQL, 了解常见的sql优化技巧; 熟悉基本的unix/linux命令, 能熟练使用git进行团队协同开发; 熟悉HTML5.CSS3.JavaScript.AJAX等Web前端开发技术: 熟悉jQuery.Bootstrap.Vue.Quasar等前端框架: 如你掌握了以上技能,那么恭

博客系统开发

开发工具  idea    MySql 用户表 1.系统登陆 实体类 public class UserInfo { private Integer userCode; private String userName; private String userPwd; private Date lastLoginTime; private boolean isUse; //alt+insert public Integer getUserCode() { return userCode; } pu

从零开始,搭建博客系统MVC5+EF6搭建框架(5),博客详情页、留言、轮播图管理、右侧统计博文

一.博客系统进度回顾 上一遍博客介绍到,系统已经实现到了发布以及前台布局展示,接下来就是实现一些,详情页,留言.轮播图管理.右侧博文统计信息实现. 二.博客系统详情页实现 2.1先来看看详情页展示的效果 2.2实现控制器在前台控制器中创建一个Blog的控制器,主要是展示博客分类以及详情页 Action详情页实现: 1 /// <summary> 2 /// 详情页 3 /// </summary> 4 /// <param name="id"><

开源分享:用Python开发的开源博客系统Blog_mini

本博文在51CTO技术博客首发. 开源不易,Python良心之作,真心送给广大朋友,恳请给予支持,不胜感激! 0.Blog_mini送给你们:让每个人都轻松拥有可管理的个人博客 你从未架设过服务器或网站,希望可以接触一下这方面的知识-- 你从未使用过Linux操作系统,希望可以接触一下这方面的知识-- 你是初中生/高中生/大学生,希望能在学业之余锻炼一下自己的IT技能-- 你是Python新手,希望能有一个用Python开发的个人博客-- 你学习Python许久,希望有一个开源的项目可以用来学习

基于NodeJS+Express+mongoDB+Bootstrap的全栈式工程化开发前后端分离博客系统实战

课程目标本课程通过一个完整的项目,让学员了解如何使用Jade+Node.js+Express+mongoDB+Bower+Gulp+Yeoman的组合开发Web应用.可以让学员更深入地掌握Node.js和Express技术. 适用人群node.js程序员,express程序员,JAVAscript程序员 课程简介本系统是一款博客系统,拥有博客必要的功能,如用户注册.用户登录.用户退出.文章列表,文章查看.添加文章,删除文章,修改文章.文章搜索.后台权限控制等. -----------------

Spring Boot带前后端 渐进式开发企业级博客系统

第1章 Spring Boot 简介   1-1 Spring Boot 博客_课程导学   1-2 Spring Boot 是什么第2章 开启 Spring Boot 的第一个 Web 项目   2-1 -初始化第一个Web项目    2-2 -用Gradle编译项目   2-3 -探索项目第3章 一个Hello World项目   3-1 编写项目构建信息    3-2 自定义存储库,加速构建   3-3 编写程序代码及测试用例    3-4 配置Wrapper,运行程序第4章 开发环境的搭

【ASP.NET实战教程】基于ASP.NET技术下多用户博客系统全程实战开发(NNblog)

岁末主推:牛牛老师主讲,多用户博客系统,基于ASP.NET技术,年后将带来移动业务平台项目项目目标: 打造个性品牌Blogo,定制多用户博客 为每一个博客用户提供个性化的 blogo解决方案,打造精品blogo门户网站  环境:VS2008+SQL Server2005 [小编推荐:现在学习可以使用 VS2012或者以上+SQL 2008或及以上  环境不一定必须和教程一样,学习的是思路]主要技术: 主体框架:逻辑架构ASP.NET MVC,物理架构Three Ties,2者相结合. 为了提高网

基于SAE+CodeIgniter3.0+管理端angularjs+前台amazeui的多用户博客系统V1.0--系统设计(一)

开发环境: 服务器系统:CentOS-6.x web服务器:Apache-2.2.x php版本:PHP-5.3.x 开发工具:sublime text 3 ,谷歌浏览器 数据库查询工具:phpmyadmin 协作工具:乌龟SVN 约定: 数据表前缀:blog_ 数据表主键名:表名_id,自增,不为空 时间字段类型统一为timestamp,每个表必须含有创建时间(默认当前时间),更新时间(默认由mysql更新) 字符集采用UTF-8 项目定义:多用户博客系统--运行在SAE上,基于php的最新3