Fehler per Mail versenden und User auf andere Seite leiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler per Mail versenden und User auf andere Seite leiten

    Liebes Forum,

    ist es möglich bei einem Fehler den User auf eine Error-Seite leiten zu lassen und dem Admin eine Mail mit dem Fehler senden respektive den Fehler in eine Datenbank schreiben?

    Für Eure Hilfe bin ich sehr dankbar.

    Viele Grüsse
    RON

  • #2
    Nur so eine Idee: Fehlerseiten definieren (404..... usw.), und von dort ein
    Script starten, dass eine Mail verschickt.

    Kommentar


    • #3
      ich wüsste nicht, was dagegenspricht. einzige voraussetzung - du musst den fehler behandeln können.

      EDIT:
      404 nicht. sonst wird man

      a) zugebombt mit emails,
      b) irritiert man mit künstlichen 404 fehlern den agent, z.b. indem man ein 200 als antwort schickt, oder die gefahr läuft, den agent interessiert nichts, was nach 404 kommt und die ganze mühe ist umsonst.

      Zuletzt geändert von penizillin; 11.01.2005, 23:21.

      Kommentar


      • #4
        Original geschrieben von penizillin
        ich wüsste nicht, was dagegenspricht. einzige voraussetzung - du musst den fehler behandeln können.

        EDIT:
        404 nicht. sonst wird man

        a) zugebombt mit emails,
        b) irritiert man mit künstlichen 404 fehlern den agent, z.b. indem man ein 200 als antwort schickt, oder die gefahr läuft, den agent interessiert nichts, was nach 404 kommt und die ganze mühe ist umsonst.

        Stimmt, habe immer die blöden Zahlen nicht im Kopf...
        Naja, aber grundsätzlich sollte sowas möglich sein.

        Kommentar


        • #5
          Danke für Eure Antworten, habe jetzt folgendes gefunden:

          PHP-Code:
          <?php
          // we will do our own error handling
          error_reporting(0);

          // user defined error handling function
          function userErrorHandler($errno$errmsg$filename$linenum$vars
          {
             
          // timestamp for the error entry
             
          $dt date("Y-m-d H:i:s (T)");

             
          // define an assoc array of error string
             // in reality the only entries we should
             // consider are E_WARNING, E_NOTICE, E_USER_ERROR,
             // E_USER_WARNING and E_USER_NOTICE
             
          $errortype = array (
                         
          E_ERROR          => "Error",
                         
          E_WARNING        => "Warning",
                         
          E_PARSE          => "Parsing Error",
                         
          E_NOTICE          => "Notice",
                         
          E_CORE_ERROR      => "Core Error",
                         
          E_CORE_WARNING    => "Core Warning",
                         
          E_COMPILE_ERROR  => "Compile Error",
                         
          E_COMPILE_WARNING => "Compile Warning",
                         
          E_USER_ERROR      => "User Error",
                         
          E_USER_WARNING    => "User Warning",
                         
          E_USER_NOTICE    => "User Notice",
                         
          E_STRICT          => "Runtime Notice"
                         
          );
             
          // set of errors for which a var trace will be saved
             
          $user_errors = array(E_USER_ERRORE_USER_WARNINGE_USER_NOTICE);
             
             
          $err "<errorentry>\n";
             
          $err .= "\t<datetime>" $dt "</datetime>\n";
             
          $err .= "\t<errornum>" $errno "</errornum>\n";
             
          $err .= "\t<errortype>" $errortype[$errno] . "</errortype>\n";
             
          $err .= "\t<errormsg>" $errmsg "</errormsg>\n";
             
          $err .= "\t<scriptname>" $filename "</scriptname>\n";
             
          $err .= "\t<scriptlinenum>" $linenum "</scriptlinenum>\n";

             if (
          in_array($errno$user_errors)) {
                 
          $err .= "\t<vartrace>" wddx_serialize_value($vars"Variables") . "</vartrace>\n";
             }
             
          $err .= "</errorentry>\n\n";
             
             
          // for testing
             // echo $err;

             // save to the error log, and e-mail me if there is a critical user error
             
          error_log($err3"/usr/local/php4/error.log");
             if (
          $errno == E_USER_ERROR) {
                 
          mail("phpdev@example.com""Critical User Error"$err);
             }
          header("Location: fehlerseite.php");
          }
          Ich habe das mal grob ausprobiert, und es funktioniert. Gibt es in PHP Fehler bei denen das Script weiter ausgeführt wird? Soll heissen, Fehler die die Ausführung des Skripts nicht weiter beeinflussen?


          Danke
          RON

          Kommentar


          • #6
            php.net/manual/en/ref.errorfunc.php
            copypaste-programmierung bringt's.

            schau dir doch die tabelle 2. an, wenn du schon auf der seite bist, bevor du fragst.

            Kommentar

            Lädt...
            X