按简单的理解,给各模块的关键步骤起个 *** 作名字,记录一下该 *** 作名,时间,用户,IP等就完了。
单入口模式,这样只需要往index.php加入write_log功能就好了。
至于哪个字段,原值,新值,这个没什么好方法啊,可以引入插件机制,
开个类存储插件方法,命名以module_task为准,比如以上的url就是article_update
那么这个插件类就是
class plugin
{
public $extraLog
function article_update($field,$old,$new)
{
self::$extraLog = array('字段'=>$field,'原值'=>$old,'新值'=>$new)
}
}
这个方法在流程页面进行数据库 *** 作的地方调用,index.php的write_log流程只读plubin::$extraLog,循环然后和其它信息一起入库或文件。
解决方案:插入数据库
$db->先创建一个log表, '],有id,$username]update',登录后都有的吧
if(in_array($action, action$username就是当前 *** 作人的名字了/, username这里可以把时间和$query_string处理一下,',可添加
$query_string = $_SERVER[', query, time 等字段,可以自己定义delete',$username,$query_string)edit',如果需要记录更多。比如)))
{
addlog($action/QUERY_STRING',这个最好处理一下
$action = $_REQUEST['///查询(query)的字符串?action=add&id=xx
/,'action' *** 作类型, array('add'/
}
function addlog($action,$query_string)
{
/query($sql)
}
在php编程中,对于一些访问没有明显错误提示的php页面,可以通过error_log来做进一步的判定。但出于种种原因,有些服务器并没有开启PHP的error_log功能。
测试或其它需要时,可以打开一下,方法如下。
编辑php.ini,将log_errors设置为on:
log_errors = On
然后,重启apache即可。
如成功开启,就可以跟踪到对应的错误提示:
[Mon Sep 24 16:57:01 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:02 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:03 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:04 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line
另外,注意在Windows环境下,除了将log_errors设置为on外,还需要定义error_log的路径及文件名:
error_log = d:/temp/error.log
(此目录需要授予php标识用户的修改权限,否则日志文件无法生成)
IIS没有error_log的概念,所以需要另外定义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)