Php Codeigniter,有没有办法自动获取用户错误报告?

Php Codeigniter,有没有办法自动获取用户错误报告?,php,codeigniter,Php,Codeigniter,通过电子邮件从用户那里得到错误报告是令人沮丧的。我打赌大多数用户不会向开发人员发送错误报告。因此,我想设置,如果用户得到PHP错误代码,我想通过电子邮件自动获得错误报告 有没有办法在PHP或CodeIgniter中获取用户错误报告 谢谢。您可以这样做: <?php // Our custom error handler function email_error_handler($number, $message, $file, $line, $vars) { $em

通过电子邮件从用户那里得到错误报告是令人沮丧的。我打赌大多数用户不会向开发人员发送错误报告。因此,我想设置,如果用户得到PHP错误代码,我想通过电子邮件自动获得错误报告

有没有办法在PHP或CodeIgniter中获取用户错误报告


谢谢。

您可以这样做:

<?php  
// Our custom error handler  
function email_error_handler($number, $message, $file, $line, $vars)  
{  
    $email = " 
        <p>An error ($number) occurred on line 
        <strong>$line</strong> and in the <strong>file: $file.</strong> 
        <p> $message </p>";  
    $email .= "<pre>" . print_r($vars, 1) . "</pre>";  
    $headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";  
    // Email the error to someone...  
    error_log($email, 1, 'you@youremail.com', $headers);  
    // Make sure that you decide how to respond to errors (on the user's side)  
    // Either echo an error message, or kill the entire project. Up to you...  
    // The code below ensures that we only "die" if the error was more than  
    // just a NOTICE.  
    if ( ($number !== E_NOTICE) && ($number < 2048) ) {  
        die("There was an error. Please try again later.");  
    }  
}  
// We should use our custom function to handle errors.  
set_error_handler('email_error_handler'); 
// Trigger an error... (var doesn't exist)  
echo $somevarthatdoesnotexist;  

PHP通常将日志记录到apache错误日志(如果您使用的是apache),该日志通常位于
/var/log/httpd/error\u log.

如果在config.php中启用CodeIgniter的错误日志,则默认情况下会设置为将日志记录到
应用程序/log/date.php
(其中日期是今天的日期)

如果需要,您可以设置一个cron,它可以每小时向您发送一个(或两个)文件中的新更改的电子邮件。或者您可以使用PHP中的
set\u error\u handler
函数创建自己的PHP错误处理程序


编辑:mbinette粘贴了一个使用PHP的
set\u error\u handler
函数的好例子。需要注意的是,这不会让您知道致命的500个错误,错误日志会告诉您。

您可以查看codeigniter关于错误报告的文档


这里提到了error\u reporting()函数,也许你可以破解它并处理电子邮件。

我们在这里讨论的是什么类型的错误?实际上,
error\u reporting
仅用于设置错误报告级别。要处理电子邮件,您必须使用
set\u error\u handler