php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.05.2005, 18:49  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard error_reporting(E_ALL ^ E_NOTICE) ohne erfolg

Hallo,

ich hab ein kleines Problem mit einen selbstgeschrieben Errorhandler ich möchte das alle Errors abgefangen werden bis auf Notice dazu sollte es doch eigentlich reichen ein

Code:
error_reporting(E_ALL ^ E_NOTICE) ;
in den Quelltext zu schreiben aber komischerweise werden E_NOTICE trotzdem über den Errorhandler weiterhin gehandelt.

Auch eine Angabe direkt in der INI führt zum gleichen Ergebnis.

Woran liegt das?
HStev ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.05.2005, 18:57  
Gast
 
Beiträge: n/a
Standard

error_reporting() beeinflusst nur, wie der eingebaute error-handler auf die verschiedenen Typen reagiert: anzeigen oder ignorieren.

Aber vielleicht hilft Dir http://php.net/set_error_handler
Zitat:
mixed set_error_handler ( callback error_handler [, int error_types] )

The second parameter error_types was introduced in PHP 5 and can be used to mask the triggering of the error_handler function just like the error_reporting ini setting controls which errors are shown. Without this mask set the error_handler will be called for every error regardless to the setting of the error_reporting setting.
weiter.

Wenn Du Dich nicht auf php5 festlegen willst, musst die Unterscheidung soweit möglich selbst in Deinem error-handler vornehmen.
  Mit Zitat antworten
Alt 11.05.2005, 19:00  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

hmmm das muss ich überlesen haben danke ...

ich nutze PHP5 ich möchte nix anderes mehr benutzen
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline   Mit Zitat antworten
Alt 11.05.2005, 19:47  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

du kannst doch im errohandler selbst definieren was ausgegeben wird und was nicht?


function myErrorHandler($errno, $errstr, $errfile, $errline)

in $errno steht die nummer drin

dann machste ein switch($errno)

und benutzt folgende Tabelle:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT


die du auch hier findest:
http://www.php.net/manual/de/functio...-reporting.php

dann kannste eine klasse fürs errorhandling benutzen
robo47 ist offline   Mit Zitat antworten
Alt 11.05.2005, 20:33  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von robo47
du kannst doch im errohandler selbst definieren was ausgegeben wird und was nicht?
jo find ich aber unschön weil
  • zuviel Code
  • der Handler auch bei einer Warnung trotzdem ausgeführt wird obwohl es sinnlos ist
HStev ist offline   Mit Zitat antworten
Alt 11.05.2005, 20:41  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

öhm naja wenn man intern je nach fehler eh unterscheiden will

PHP-Code:
        if(ini_get('error_reporting') != 0)
        {
            
$backtrace debug_backtrace();
            
$ErrorMessage $this->CreateErrorMessage(&$errno, &$errstr, &$errfile, &$errline, &$backtrace);
            switch (
$this->_ReportingMode)
            {
                
// Nichts -> Silentmode
                
case 0:
                break;
                
// Nur Ausgabe
                
case 1:
                    
$this->PrintError($ErrorMessage);
                break;
                
// Ausgabe und in Datei
                
case 2:
                    
$this->PrintError($ErrorMessage);
                    
$this->WriteError($ErrorMessage);
                break;
                
// Nur in Datei
                
case 3:
                    
$this->WriteError($ErrorMessage);
                break;
            }
            
// Script abbrechen?
            
if ($errno <= $this->_BreakLevel)
            {    
                echo 
'
MAX ALLOWED ERROR_LEVEL REACHED
'
;
                
$this->EndScript();
            }
        }
        else
        {
            
// Error From a Function with @
        

da das mein errorhandler ist, ist das nicht sonderlich viel code und da er eigentlich zum debuggen da ist, ist das wann er ausgeführt wird nicht so sonderlich relevant, aber jedem das seine
robo47 ist offline   Mit Zitat antworten
Alt 11.05.2005, 20:46  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

hmmm das ist ne Klassenmethode oder?

ist es auch möglich eine Klassenmthode als error_hanlder zu setzen?
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline   Mit Zitat antworten
Alt 12.05.2005, 03:11  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

jab

soweit ich es noch raffe:

PHP-Code:
<?php
$array 
= array('classname','errorhandlermethodename');
set_error_handler($array);
?>
robo47 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Goßes Webprojekt- Designer und Programmierer gesucht- Bezahlung durch den Erfolg eL gThis Beitragsarchiv 6 04.06.2008 21:38
SQL Einträge simulieren, sammeln, auf Erfolg prüfen, ... ? PsychoEagle Datenbanken 5 18.07.2007 16:33
Session - Nach einloggen aktualisieren damit Einlog erfolg PHP Tipps 2005-2 12 03.11.2005 17:49
Formular Felder nach Erfolg löschen PHP Tipps 2005 24 05.04.2005 16:56
PHP Online Game - Virtual RealLife Beitragsarchiv 17 28.01.2005 15:58
[Erledigt] Objekte und Formulare PHP-Fortgeschrittene 8 14.08.2004 17:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php e_all, error_reporting(e_all);, error_reporting e_all, error_reporting e_all e_notice, e_notice, error_reporting(e_all ^ e_notice);, e_all, error_reporting(e_all), error_reporting = e_all & ~e_notice, e_all ^ e_notice, e_all & ~e_notice, e_all e_notice, php e_notice, e_all php, error_reporting(e_all, error_reporting e_all & e_notice, error_reporting = e_all, error_reporting(e_all ^ e_notice), error_reporting = e_all & ~e_notice;, e_all & e_notice

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.