讓你的錯誤能留下痕跡(錯誤日志mysql篇目)
發表于:2007-07-14來源:作者:點擊數:
標簽:
class.method //建立錯誤日志 function error(){ $fp=@fopen(error.dat,a+); $time=date(Y-m-d H:i:s); $msg={VisitedTime:$time}\t{VisiterIP:$_SERVER[REMOTE_ADDR]}\t{Errormsg:. mysql _error().}\t{File:-$_SERVER[ PHP _SELF]}\t{User:$_SESSION[user]
class.method
//建立錯誤日志
function error(){
$fp=@fopen("error.dat","a+");
$time=date("Y-m-d H:i:s");
$msg="{VisitedTime:$time}\t{VisiterIP:$_SERVER[REMOTE_ADDR]}\t{Errormsg:".
mysql_error()."}\t{File:->$_SERVER[
PHP_SELF]}\t{User:$_SESSION[user]}\r\n";
@fputs($fp,$msg);
@fclose($fp);
}
當你使用mysql做站點的時候,肯定有你不知道的錯誤發生,怎么記錄呢?用mail將郵件發送到你的郵箱里嗎?你很確定您就能收到郵件嗎?在
linux下可以向root sendmail,這樣達到維護目的,但是root郵件是不是太多了?再建立用戶?
這個直接在你的目錄下建立錯誤日志
上面的是我使用的一個類中的錯誤記錄方法
在您的使用了mysql連接的頁面內這樣調用
if(mysql_error()){
$classname->error();
}
______________________________________________
一但你的頁面發生錯誤,在頁面內只要你屏蔽的夠隱蔽了,就不會泄露信息,相對在這個目錄內就建立了
error.dat內容為(eg.)
{VisitedTime:2002-05-09 14:43:56} {VisiterIP:127.0.0.1} {Errormsg:Duplicate entry '0' for key 1} {File:->/path/path/errorfilename.
php} {User:sports98}
我想這樣的記錄對于您來分析您的頁面肯定是有好處的
如果您是 include請不要加__LINE__
如果您是 require 建議加入__LINE__ 這樣更好的幫您迅速找到錯誤所在位置,以方便解決問題
原文轉自:http://www.anti-gravitydesign.com