|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服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。
不过这个表增长应该够快的,还要定期归档为好 |
|