Ben otomatik olarak sizin için yapacak hiçbir araç yok yok; ama :-( bu size biraz zaman alacaktır, itiraf, I Still ... düşünmek, geliştirmek zor değil
Sadece bir kaç not atmak, hataları oturum aklıma gelen en iyi çözümdür:
set_error_handler
a> ile kendi hata işleyicisi kayıt
- code the function, so that it logs errors + GET/POST data
- belki / / veritabanı çeşit yapılmalıdır olurdu, ya da yapılandırılmış dosya (an SQLite Database, maybe : light, fast, easy to use, doesn't depend on an external DB server, ...), ve sadece düz dosyaları olabilir; daha sonra uğraşmak daha kolay olacaktır.
- develop the "reporting" application...
- Yani dediğin gibi olsa da, biraz zaman alacak bir şey ...
Using the example that's given on the manual page, something like this would probably do : first, declare your error handling function :
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
$str = '';
switch ($errno) {
case E_USER_ERROR:
$str .= "<b>My ERROR</b> [$errno] $errstr<br />\n";
$str .= " Fatal error on line $errline in file $errfile";
$str .= ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
break;
case E_USER_WARNING:
$str .= "<b>My WARNING</b> [$errno] $errstr<br />\n";
break;
case E_USER_NOTICE:
$str .= "<b>My NOTICE</b> [$errno] $errstr<br />\n";
break;
default:
$str .= "Unknown error type: [$errno] $errstr<br />\n";
break;
}
$str .= print_r($_GET, true);
$str .= "\n";
file_put_contents(dirname(__FILE__) . '/log.txt', $str, FILE_APPEND);
/* Don't execute PHP internal error handler */
return true;
}
It gets informations of the error, prepares some specific error messages that depend on the error type, and put all that and a dump of $_GET
to a file.
(Of course, your webserver must be able to create / write to that file)
Then, you register that handler :
$old_error_handler = set_error_handler("myErrorHandler");
And, finally, just to test, you trigger some errors :
trigger_error("test of E_USER_ERROR", E_USER_ERROR);
trigger_error("test of E_USER_WARNING", E_USER_WARNING);
trigger_error("test of E_USER_NOTICE", E_USER_NOTICE);
Now, provided you call the page with something like this : http://tests/temp/temp.php?a=10&test=glop&hello=world
; you will get an error log containing this :
$ cat log.txt
<b>My ERROR</b> [256] test of E_USER_ERROR<br />
Fatal error on line 34 in file /home/squale/developpement/tests/temp/temp.php, PHP 5.3.0RC4 (Linux)<br />
Array
(
[a] => 10
[test] => glop
[hello] => world
)
<b>My WARNING</b> [512] test of E_USER_WARNING<br />
Array
(
[a] => 10
[test] => glop
[hello] => world
)
<b>My NOTICE</b> [1024] test of E_USER_NOTICE<br />
Array
(
[a] => 10
[test] => glop
[hello] => world
)
Bu durumda, oldukça çirkin bir karmaşa ... Ama muhtemelen noktayı görmek; şimdi, ne istediğinizi tam olarak almak için bu üzerine inşa etmek kadar ;-)
Of course, now, you also have to develop the reporting interface (user-friendly, fast, usable, and all that...) ; this will probably be the longest part to put in place :-(
And, unfortunatly, I do not know any tool that could help you...
(Maybe, if you start developping something, it could be released as open source ? That would probably prove useful to others ;-) I might be interested for some projects, and I am sure I'm not the one ;-) )
Yine, eğlenin!