Was gebt Ihr beim PHP Error Reporting aus ?

Diskutiere mit über: Was gebt Ihr beim PHP Error Reporting aus ? im Web-Programmierung Forum

  1. Sterndi

    Sterndi Thread Starter MacUser Mitglied

    Beiträge:
    488
    Zustimmungen:
    0
    Registriert seit:
    24.03.2004
    Hallo!

    Ich habe vor kurzem einen Server lokal aufgesetzt auf mac os x und gebe in php nomendan keine errors aus.

    Was für errors gebt ihr alle aus.
    Würde mich nur intressieren ;)
     
  2. lindic

    lindic MacUser Mitglied

    Beiträge:
    197
    Zustimmungen:
    5
    Registriert seit:
    20.11.2004
    In der Entwicklungsumgebung 2039. :cool:
     
  3. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Ich arbeite sehr viel mit Perl, aber das macht für die Benatwortung der Frage keinen Unterschied.

    Ich benutze sehr viel eigene Fehlerkontrolle z.B. mit 'or die "Fehler: $!\n!";' insbesondere bei kritischen Aktionen wie Dateioperationen (öffnen, lesen, schreiben, anlegen von Dateien), Datenbankzugriffen, Zugriffen auf externe Server, Versenden von Mails etc.

    Das hat den Vorteil, dass man selber Steuern kann was im Fehlerfall passiert, welche Meldungen ausgegeben werden und ob das Skript abgebrochen wird oder nicht.

    HTH
     
  4. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    in produktiven Umgebungen wird's per php.ini komplett ausgeschaltet. Dann include ich mir dieses Skript:
    PHP:
    <?
    // Kein Fehler wird angezeigt
    error_reporting(0);

    // Fehler werden mit eigener Funktion bearbeitet
    set_error_handler('ErrorHandler');

    // Funktion versendet Mail
    function ErrorHandler($errno,$errstr,$errfile,$errline) {
        
    $error_msg    " - Es ist folgender Fehler auf Ihrer Seite aufgetreten:\n\n".$errstr."\n\nDatei: ".$errfile."\nZeile: ".$errline."\nDatum: ".date("d.m.Y, H:i:s")
        
    $email_addr    "spam@nospam.de";
        
    $remote_dbg "localhost";
        
    $email        true;
        
    $stdlog        true;
        
    $display    false;// Fehleranzeige
        
    $header        false;// nur mit ob_start();
        
    $notify        true;
        
    $halt_scripttrue;

        switch(
    $errno) {    
        case 
    E_USER_NOTICE
            case 
    E_NOTICE

                
    $halt_scriptfalse;
                
    $email        false;
                
    $type        "Notice";
                break;

            case 
    E_USER_WARNING
            case 
    E_COMPILE_WARNING
            case 
    E_CORE_WARNING
            case 
    E_WARNING

                
    $halt_scriptfalse;
                
    $type        "Warnung";
                break;

            case 
    E_USER_ERROR
            case 
    E_COMPILE_ERROR
            case 
    E_CORE_ERROR
            case 
    E_ERROR

                
    $type        "Fatal Error";
                
    $header        false;
                break;

            case 
    E_PARSE

                
    $type        "Parse Error";
                break;

            default: 

                
    $type        "Unbekannter Fehler";
                break;
        }

        if(
    $notify) {
            
    $error_msg        "Fehlertyp: ".$type.$error_msg;

            if(
    $email)    error_log($error_msg1$email_addr);
            if(
    $remote)    error_log($error_msg2$remote_dbg);
            if(
    $display)echo nl2br($error_msg);
            if(
    $stdlog) {
                if(
    $log_file == ""error_log($error_msg0);
                else 
    error_log($error_msg."\n"3$log_file);
            }
            if(
    $header)    header('Location: http://'.$_SERVER['HTTP_HOST'].'/error/errorphp.php');
        }
        if(
    $halt_script) exit -1;
    }
    ?>
    Es wird ne vorgefertigte Mail verschickt und wenn man mag ein anpassbarer Fehler angezeigt. Lass ich aber nur manuell bei wirklich kritischen Operationen, ansonsten kann's dem User wirklich egal sein, ob im Hintergrund ein Fehler aufgetreten ist.
     
    Zuletzt bearbeitet: 07.11.2005
  5. der_Kay

    der_Kay MacUser Mitglied

    Beiträge:
    1.693
    Zustimmungen:
    7
    Registriert seit:
    02.09.2004
    Bei jeder Funktion, die scheitern kann, einen user_error mit der gesamten Umgebung...
     
  6. Sterndi

    Sterndi Thread Starter MacUser Mitglied

    Beiträge:
    488
    Zustimmungen:
    0
    Registriert seit:
    24.03.2004
    Danke für eure rasche antworten ;)

    Die möglichkeiten sind unendlich ich überleg nemlich welche ich am server anzeigen lassen soll bzw. welche nicht. Das problem ist ich programmiere nebenbei auf den server und wenn ein fehler entsteht dann kann ich nicht rausfinden wo (wenn ich das error reporting ausgeschalten hab)

    ansonsten wenn ich es einschalte kommen sämtliche meldungen weil alles undefiniert ist *G* und das ist ja a net schön :)
     
  7. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Naja, das error_reporting hat ja mehrere Stufen. Wenn Du die Warnungen nicht angezeigt bekommen magst, dann setz es halt einfach auf Error.

    Da die nativen PHP-Fehlermeldungen aber für den User sehr kryptisch sind und auch Details verraten, die man vielleicht nicht unbedingt weltweit abrufbar gestalten mag empfehle ich mein Skript ;) oder ähnliche Lösungen mit Mail-Versand.

    Fehler kommen per Mail dann so bei mir an:
    Code:
    Fehlertyp: Warnung - Es ist folgender Fehler auf Ihrer Seite aufgetreten:
    
    mysql_connect() [<a href='http://www.php.net/function.mysql-connect'>function.mysql-connect</a>]: Access denied for user: 'root@localhost' (Using password: YES)
    
    Datei: /www/htdocs/jakob/data/config.php
    Zeile: 17
    Datum: 31.10.2005, 22:59:25
     
  8. dms

    dms Gast

    Genau! error_reporting ist ja keine globale Rahmenbedingung. Du kannst es in jedem Script einstellen wie Du es möchtest. Global komplet ausstellen und in den Dateien in denen Du arbeitest setzt Du ein E_ALL, oder was immer Dir beliebt.
     
Die Seite wird geladen...
Ähnliche Themen - gebt beim PHP Forum Datum
Bild beim scrollen stehen lassen Web-Programmierung 12.09.2013
PopUp beim besuchen der Homepage Web-Programmierung 25.07.2012
WebApp - es ruckelt beim scrollen Web-Programmierung 25.01.2011
Rollover-Effekte verschwinden beim online gehen Web-Programmierung 02.01.2011
Fehlermeldungen beim laden auf dem Webserver Web-Programmierung 04.12.2010

Diese Seite empfehlen

Benutzerdefinierte Suche