壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3362|回复: 3

生产版本的weberp中的SQL记录

[复制链接]
发表于 2007/8/13 09:17:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
查看数据库发现每个条目的添加更改并没有记录用户和时间。昨天偶然看weberp的生产版(有人为某公司定制的,改了很多地方,建议研究),看到他们这样实现的。

在 ConnectDB_mysql.inc里的DB_query函数加上了

//CMM - added audit trail               
        $action = strtoupper(substr($SQL, 0, 6));
        
        if($_SESSION['AuditTrail']==_('All Access')  
             || ($_SESSION['AuditTrail']==_('Changes Only')
                              && ($action=='INSERT'
                                                                 || $action=='UPDATE'
                                                                 || $action=='DELETE') ) ) {
                                                                                 
                AuditTrail(addslashes($SQL) , $_SESSION['UserID'], $_SERVER['PHP_SELF']);                                                                        
        
        }

那么看看这个AuditTrail函数的代码呢:

function AuditTrail($sql, $user, $page){
/*
* Tracks a sql action by logging the sql code to the sqlaudit table
*/
        
        global $AuditTrail_dbuser;
        global $AuditTrail_dbpw;
        global $host;
        
  //this user has rights only to the sqlaudit table               
  $auditConn = mysql_connect($host, $AuditTrail_dbuser, $AuditTrail_dbpw);
  
  if(!$auditConn || !mysql_select_db($_SESSION['DatabaseName'],$auditConn)){
          echo '<BR>' . _('Could not open audit trail connection!');
  }else{
               
                $AuditSql = "INSERT INTO sqlaudit
                                                      (sqlaction,
                                                       user,
                                                       date_time,
                                                       page)
                                              VALUES('"
                                              . addslashes($sql)
                                              . "','"
                                              . $user
                                              . "','"
                                              . date("m/d/Y H:i:s")
                                              . "','"
                                              . $page
                                              . "')";

                mysql_query($AuditSql,$auditConn);
                mysql_close($auditConn);
        }

}

很显然,要在数据库里加一个表sqlaudit。

不过这个表增长应该够快的,还要定期归档为好
发表于 2007/11/9 10:52:51 | 显示全部楼层
那个版本哪里下载?
 楼主| 发表于 2007/11/9 12:29:18 | 显示全部楼层
只有程序没有数据库,不能运行的。
在webERP的wiki上有链接,在3.04基础上改了太多地方了。有一部分修改已经合并到了新版weberp中。
发表于 2010/3/8 10:56:08 | 显示全部楼层
哎,学习这个真是太难了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 11:40 , Processed in 0.016876 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表