PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Auf Fehler reagieren (http://www.selfphp.de/forum/showthread.php?t=15102)

einsteigi 08.11.2006 15:50:43

Auf Fehler reagieren
 
Bin gerade dabei eine Registrierungsdaten in eine DB zu schreiben.

Nun möchte ich aber alle Fehlermeldung unterdrücken, sprich e_reporting nicht E_ALL.
Auch mysql Fehler möchte ich unterdrücken, nicht ausgeben. Dies mache ich, wei Ich Hackern so wenig Infos wie möglich geben möchte. Zudem sollen Fehlermeldung nur in der Entwicklungsphase ausgegeben werden.

Darum muss mein Script auf Fehler anders reagieren.

Foglende Fehler könnte MYsql liefern.

1. das Einzutragene übersteigt die festgelägte länge, kann man z.B. bei Varchar so machen:
Varchar(30) bedeutet es werden Zeichenketten mit max. 30 Zeichen eingetragen.
2. mysql hat zuviele Verbindungen, sprich ist überlastet
3. in einer unique-Spalte ist ein Wert schon vorhanden.
4. Das Einzutragene hat den falschen Datentyp, bei einer int-Spalte will man Buchstaben eintragen.

Wie realisiere ich ein Script das bei
1 ausgibt: Länge zu lang
2 ausgibt: DB hat momentan zu viele Verbindungen
3 ausgibt: Wert schon vorhanden
4 ausgibt: falscher Datentyp

BenniG. 08.11.2006 15:58:09

AW: Auf Fehler reagieren
 
schreib ein @ vor die betreffenen stellen und mach dahinter einen eigenen Fehlerhandler:

@mysql_connect($host,$user,$pass) or die (deine_funktion("Fehler beim Connect"));

Deine Funktion gibt nur eine Meldung wie blabla unerreichbar raus und loggt den Fehler z.B. in eine Datei.. Theoretisch könntest du auch einen eigenen error-handler implementieren,
siehe Beispiel auf http://de.php.net/errorfunc

Heinrich 09.11.2006 23:27:19

AW: Auf Fehler reagieren
 
Hi,

versteh' ich richtig, dass du zwar die Standardfehlermeldungen unterdrücken willst (siehe Benni), aber eigene "Hinweise" anzeigen willst?

Dann musst du halt spezifische if-Abfragen einbauen. Z.B. zum ersten:
PHP-Code:

if (strlen($eingabe) > 30) {
echo 
"maximal 30 Zeichen erlaubt";


usw.

Gruß
Heinrich


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:38:04 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.