ThinkPHP6实现简单的记录网站后台管理操作日志方法

2020-09-14   阅读:5198   类型:后端   分类:TP6    标签: TP6

我们在开发系统的时候,会考虑到安全问题,赋予不用管理员不用权限,同时,记录每个管理员的操作记录,达到监控管理员的每一步操作和防止数据误删保障系统安全。

image.png

一、如何写记录管理员操作日志呢?

方法思路:

1、创建一张操作日志表 admin_log。

2、哪些数据要记录操作日志,数据增加操作、编辑操作、删除操作。

3、编写公共方法,用于写入数据到数据库。

4、在每一步操作成功后,调用该方法,记录改管理员的搞作日志。

二、编写代码

2.1、创建 admin_log 日志表

CREATE TABLE `tp_admin_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `admin_name` varchar(255) DEFAULT NULL COMMENT '账号',
  `created_at` varchar(12) DEFAULT NULL COMMENT '操作时间',
  `ip` varchar(200) DEFAULT NULL COMMENT 'ip',
  `content` text COMMENT '日志',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='管理员操作日志表';

2.2、common.php文件下编写公共写入数据方法

<?php
/*
 * 系统日志写入
 * @parm admin_name  管理员账号
 * @parm ip  当前客户端ip
 * @parm content  操作内容
 * @parm created_at  操作时间
 * */
function insertLog($admin_name,$content){
    $data=[
        'admin_name'=>$admin_name,
        'ip'=>$_SERVER["REMOTE_ADDR"],
        'content'=>$content,
        'created_at'=>time(),
    ];
    $data=\app\union\model\Defendlist::insert($data);
}
?>

2.3、在一步操作成功出调用方法写入操作数据日志(调用insertLog()方法,传递账号,操作内容信息等。)

<?php
public function destroy($id){
    $res=Roles::destroy($id);
    if($res){
        insertLog(Cookie::get('admin_name'),'删除角色  ID:'.$id);
        return returnJson('200','删除成功');
    }else{
        return returnJson('500','删除失败');
    }
}
?>

以上是作者的一点思路,如果有更好的方法,欢迎留言!集百家之最,编写更好的代码!

腾讯云11.11上云拼团Go,2核2G3M云服务器 28元/年

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/adetail/420.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×