php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 03-04-2008, 15:19
st@tic
 Registrierter Benutzer
Links : Onlinestatus : st@tic ist offline
Registriert seit: Mar 2004
Beiträge: 344
st@tic ist zur Zeit noch ein unbeschriebenes Blatt
Standard Wie am besten mit Fehlern umgehen?

Ich arbeite gerade an einer Klasse, welche einige Funktionen bereitstellen soll um gewisse Aufgaben zu erfüllen bzw zu erleichtern.
Das ganze wird wahrscheinlich in richtung Framework gehen.

Aber eines ist mir noch nicht ganz klar.
Wie soll ich mit fehlern umgehen?

Freie Benutzereingaben bedeuten immer, dass einer aus unwissenheit oder langweilige was falsches eingibt. Wenn ich z.B. zwei Integer brauche und jemand zwei Strings eingibt, dann wird es wohl nix geben.

Gemäß der Einstellung "alle fremden Daten sind grundsätzlich böse" möchte ich natürlich soweit es geht alles abfangen.

Vielleicht kann mir da jemand etwas weiterhelfen
[list=1][*]Wie soll ich am besten die Parameter überprüfen? In jeder Methode? z.B. if(is_numeric($Wert1)) oder gibts da was feineres?[*]Wie sollte man am besten vorgehen wenn Fehler auftauchen? direkt in der jeweiligen Methode prüfen und mit die() ausgeben?[*]Direkt ausgeben aber mit was "besserem" als die()?[*]Oder sollen die Fehlermeldung zurück zur aufrufenden Datei geleitet werden und dort abgefangen werden?[/list=1]

ich hab mir mal ein paar Klassen aus dem PEAR angesehen (hauptsächlich MDB2) aber da hab ich dann mal garnix durchblicken können
Mit Zitat antworten
  #2 (permalink)  
Alt 03-04-2008, 15:31
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zu 2) Ich würde zum Error Handling eigene Methoden schreiben. Dann kannst du immer noch via Parameter bestimmen ob die Fkt im Fehlerfalle abbrechen, loggen oder was auch immer soll

zu 1) eine eigene Methode, die das Validieren von Daten übernimmt würde ich vorziehen. Hätte wiederum den Vortei, dass du via Parameter steuern kannst worauf die Fkt prüfen soll (Integer, Float etc ppt)

3) kommt imho darauf an wie schwerwiegend der Fehler für die weitere Abarbeitung des Codes ist. Normalerweise hast du ja den Type Cast, der z.B. aus '0' 0 macht wenn ein Integer gefordert ist. Also ist es egal ob String oder Int
Nur wenn du mit der Zahl noch Berechnungen (z.B. Divisionen) machen willst, dann musst du den Code bei 0 oder '0' abbrechen, sonst macht das bei einer Division durch 0 der Parser mit einer hässlichen Meldung selber.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 03-04-2008, 17:00
st@tic
 Registrierter Benutzer
Links : Onlinestatus : st@tic ist offline
Registriert seit: Mar 2004
Beiträge: 344
st@tic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du kennst nicht zufällig ein projekt, klasse oder codeschnippsel, wo soetwas schön gelöst wurde?
würde mir gern ein bisschen was abschauen.

meine idee ist nämlich etwas umfangreicher und es wäre ärgerlich wenn ich gegen ende feststelle, dass meine fehlerbehandlungen nicht optimal sind
Mit Zitat antworten
  #4 (permalink)  
Alt 03-04-2008, 17:04
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich würde die Exceptions von PHP um deine Methoden erweitern
Ist sicherlich ne gute Ausgangsbasis. Was fertiges kenne ich nicht, da es doch stark vom Code abhängt, welche Fehler überhaupt auftreten können

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 03-04-2008, 17:19
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Mal so eine andere Sache, die irgendwie immer unter den Tisch gekehrt wird: Fehlermeldungen sollten auf Produktivsystemen nicht ausgegeben werden.
Mit Zitat antworten
  #6 (permalink)  
Alt 03-04-2008, 19:16
st@tic
 Registrierter Benutzer
Links : Onlinestatus : st@tic ist offline
Registriert seit: Mar 2004
Beiträge: 344
st@tic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Ist sicherlich ne gute Ausgangsbasis. Was fertiges kenne ich nicht, da es doch stark vom Code abhängt, welche Fehler überhaupt auftreten können
[/B]
naja aber es gibt doch sicherlich andere leute die auch schon mit php klassen etc entwickelt haben die fehlerbehandlungen eingebaut haben.
ich will ja nur inspiration und nicht 1:1 kopieren. ich steh da irgendwie ein wenig auf dem Schlauch wie ich es am besten angehen sollte.
Mit Zitat antworten
  #7 (permalink)  
Alt 03-04-2008, 19:36
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn es dir um das abfangen ungültiger benutzereingaben geht, wird ja wohl ein formular daran beteiligt sein. dazu gibt es bereits fertige validierungsklassen (auch für die erzeugung).

z.b.: http://pear.php.net/package/HTML_QuickForm2
Mit Zitat antworten
  #8 (permalink)  
Alt 03-04-2008, 19:52
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.271
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von unset
Mal so eine andere Sache, die irgendwie immer unter den Tisch gekehrt wird: Fehlermeldungen sollten auf Produktivsystemen nicht ausgegeben werden.
Aha ... deshalb wohl solche Fehlermeldungen:
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #9 (permalink)  
Alt 03-04-2008, 20:06
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard Re: Wie am besten mit Fehlern umgehen?

Zitat:
1. Wie soll ich am besten die Parameter überprüfen? In jeder Methode? z.B. if(is_numeric($Wert1)) oder gibts da was feineres?
Diese Validierungs- bzw. Cast-Methoden kannst du dir auch zum Beispiel statisch in einer Klasse ablegen, so schreibst du nicht andauernd überall die gleichen Abfragen hin.
Am elegantesten finde ich es, den Methoden wenige Parameter übergeben zu müssen sondern diese vorher Klasseneigenschaften zuzuweisen und durch getter/setter zu typisieren.
Zitat:
2. Wie sollte man am besten vorgehen wenn Fehler auftauchen? direkt in der jeweiligen Methode prüfen und mit die() ausgeben?
die() ist schon mal sehr ungeschickt, da nicht jede Pups-Methode dein Skript abschießen soll. Außerdem ist das Reagieren auf Fehler doch recht dürftig.
Auf PHP-Fehler kann auch immer etwas schwer reagiert werden, darum würde ich innerhalb von Klassen immer eine entsprechende Exception werfen. Von diesen bekommst du dann auch ohne error_reporting was mit!
Zitat:
3. Direkt ausgeben aber mit was "besserem" als die()?
Siehe auch 2.
Zitat:
Oder sollen die Fehlermeldung zurück zur aufrufenden Datei geleitet werden und dort abgefangen werden?
Die Exception kann dann im Bereich des Methodenaufrufs gefangen werden.
-> Damit nicht jeder Kunde eine nicht-gefangene Exception sieht, solltest du einen ExceptionHandler einsetzen!
Mit Zitat antworten
  #10 (permalink)  
Alt 04-04-2008, 09:09
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von goth
Aha ... deshalb wohl solche Fehlermeldungen:
Ich meinte eigentlich die von PHP generierten Fehlermeldungen. Natürlich soll der Benutzer keine weiße Seite aufgetischt bekommen
Mit Zitat antworten
  #11 (permalink)  
Alt 04-04-2008, 09:22
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ich meinte eigentlich die von PHP generierten Fehlermeldungen. Natürlich soll der Benutzer keine weiße Seite aufgetischt bekommen
Ich nutze immer ganz gerne den ErrorHandler um diese Fehlermeldungen zu fangen und anschließend eine PhpRuntimeException zu werfen. So kann ich auf jeden Fehler reagieren!
Mit Zitat antworten
  #12 (permalink)  
Alt 04-04-2008, 09:25
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Du kannst aber nicht alle PHP-Fehlermeldungen abfangen, daher generierte Fehler ausschalten. Aber irgendwie sage ich das jetzt auch schon zum dritten mal.
Mit Zitat antworten
  #13 (permalink)  
Alt 04-04-2008, 09:26
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Du kannst aber nicht alle PHP-Fehlermeldungen abfangen, daher generierte Fehler ausschalten. Aber irgendwie sage ich das jetzt auch schon zum dritten mal.
Ich habe ja nichts gegen deine Aussage gesagt. Sollte eher ergänzend gemeint sein!
Mit Zitat antworten
  #14 (permalink)  
Alt 04-04-2008, 09:28
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Du hast gesagt, du kannst auf jeden Fehler mit Exceptions reagieren. Das stimmt einfach nicht. Das wollte ich klar stellen! Aber ich habe eben gesehen, dass ich das doch noch nicht vorher erwähnte, hab wohl meinen Text in der Antwort auf goths Post nochmal editiert.
Mit Zitat antworten
  #15 (permalink)  
Alt 04-04-2008, 11:06
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Du hast gesagt, du kannst auf jeden Fehler mit Exceptions reagieren. Das stimmt einfach nicht.
Ok, da hast du natürlich recht! Sollte natürlich erwähnt werden. Ich meinte auch eher die Warnings, die durch PHP-Funktionen generiert werden!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:54 Uhr.