我通过try和catch使用PDO,因此我可以将错误捕获到用户定义的函数中。我想知道这种方法是否可以接受。
Try and Catch:
Try
{
...
} catch (Exception $e) {
// Proccess error
$msg = $e->getMessage();
$timestamp = date("Y-m-d H:i:s");
$line = $e->getLine();
$code = $e->getCode();
handle_error($msg, $timestamp, $line, $code);
die("oops! It's look like we got an error here! Try Again!");
}
错误处理功能:
function handle_error($msg, $timestamp, $line, $code) {
$file = 'errorlog.txt';
$data = "$timestamp // Error Message: $msg | Error Code: $code | Error Line: $line \n";
file_put_contents($file, $data, FILE_APPEND);
return;
}
由于
答案 0 :(得分:0)
我唯一能想到的可能是错误的是,如果用户有机会找到触发PDO错误的方法,那么他基本上可以通过一遍又一遍地触发系统来对系统进行DDoS并用你的硬盘填满你的硬盘。同样的错误。更不用说它可以耗尽你所有的磁盘I / O带宽(当利用它时)。
然后,Apache再次进行类似的日志记录,即使在DDoS攻击下,我还没有听说过硬盘已经被填满了。
答案 1 :(得分:0)
您可以通过更改类似于此
的代码来简化日志写入catch (PDOException $e) {
$my_error = "Failed;" . $e;
error_log(print_r($my_error,TRUE));
}