后台操作日志(sql日志)

本文介绍了一个项目中遇到的问题,即文档无缘无故丢失,为解决此问题,开发了一个日志记录功能,用于记录后台操作及SQL执行情况。文章详细展示了如何使用PHP实现这一功能,包括记录用户信息、操作及SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的一个项目 客户那边老是无缘无故的丢失文档 , 所以这边对后台的一些操作进行日志记录 代码如下

/**
 * 删除文档AJAX
 * @function ajaxDelete
 * @author YuMijo
 */
function ajaxDelete()
{   
    // var_dump($_POST['id']);die();
    

    $id = $_POST['id'];
    $sql = "SELECT docKey From `e_qcloud_document` WHERE id IN {$id}";
    echo json_encode($this->_sql($sql));
    $sql = "DELETE FROM `e_qcloud_document` WHERE  id IN {$id}";

    $this->_sql($sql);
    if($_POST['id'])
        {//管理员日志
            if(!is_dir($dir = dirname(__FILE__).DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.'adminLog')) {
                mkdir($dir, 755);
            }
            
            $content = date('Y-m-d H:i:s', $GLOBALS['startat']).' '.$GLOBALS['startat'].' ['.$duration.'s]'.' [uid='.$_SESSION['admin']['userId'].' '.$_SESSION['admin']['userName'].'] '.$_SERVER['REQUEST_METHOD']. ' '.$_SERVER['REQUEST_URI']."\n";
            if($_SERVER['REQUEST_METHOD'] == 'POST')
            {
                foreach($_POST as $key=>$value)
                {
                    $content .= $key.'='.$value."\n";
                }
            }
            $sqls = of_db::getQueryLog();

            if(count($sqls) > 100) 
            {
                $sqls = array_slice($sqls, 0, 100);
                $sqls[] = '... '.count($sqls).' sqls in total';
            }
            $content .= implode("\n", $sqls)."\n\n";
           
            file_put_contents($dir.DIRECTORY_SEPARATOR.date('Ymd').'.log', $content, FILE_APPEND);
            //   var_dump($dir.DIRECTORY_SEPARATOR.date('Ymd').'.log');
            // die();
        }
}

 这里要注意 dirname()函数 限制比较严格 函数返回路径中的目录部分 这个路径如果匹配不上的话 是找不到正确路径的


这里会记录到 用户信息 用户的操作 也就是对应的sql。

转载于:https://www.cnblogs.com/yumingzhao/p/9713398.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值