PDA

Vollständige Version anzeigen : Frage Logik Fehlermeldung



JensMJ
16.09.04, 14:08
Hallo
ich wollte mal fragen was nun sinnvoller ist in php.

Eine Fehlermeldung abfangen wenn ein Fehler passiert, siehe hier:



// CONNECT TO DATABASE
$db = @mysql_connect($host,$user,$password) or die("<html><head><body bgcolor=$bgcolor alink=$bglinkcolor vlink=$bglinkcolor link=$bglinkcolor>User Error!</body></html>");

@mysql_select_db($database,$db) or die("<html><head><body bgcolor=$bgcolor alink=$bglinkcolor vlink=$bglinkcolor link=$bglinkcolor>Database Error!</body></html>");


oder lieber eine Bestätigung erhalten wenn alles klappt, siehe hier:



// CONNECT TO DATABASE
If ($db = @mysql_connect($host,$user,$password)) {
echo "<br>";
echo "DB connect wurde ausgeführt"; }


If (@mysql_select_db($database,$db)) {
echo "<br>";
echo "database wurde ausgewählt"; }


funktionieren sollte ja wohl beides.
Gruß MJ

Beamer
16.09.04, 14:15
Ich kenne nicht sehr viele Seiten, die anzeigen, wenn eine Verbindung hergestellt wurde. Die erste Variante scheint sinnvoller zu sein.

Schließlich wird ein Benutzer davon ausgehen, eine funktionierende Seite vorzufinden. Und erst wenn dies nicht der Fall ist, sollte er eine entsprechend verständliche Fehlermeldung bekommen.

Geh davon aus, dass üblicherweise die Seite und die Datenbank gleichzeitig down sind, d.h. wenn die Seite erreichbar ist, wird in den allermeisten Fällen auch die Datenbank erreichbar sein (vorausgesetzt dein Script ist ordnungsgemäß programmiert). Und wenn schon die Seite nicht erreichbar ist, kannst du dir auch die Meldung schenken. ;)

JensMJ
16.09.04, 14:22
Hallo
Ja für den realen Betrieb hast du sicher recht. Aber wenn ich dabei bin etwas zu bauen ist doch auch Variante 2 sinnvoll oder?

Rein von der Syntax her müssten sie doch beide funktionieren.
Gruß MJ

Beamer
16.09.04, 14:29
Ganz kurz: Ja :o

hevo
17.09.04, 07:36
Hallo!

@Beamer: Die Vergangenheit bei LW lehrt, daß PHP durchaus noch funktioniert, wenn jemand MySQL lahmgelegt hat.

@JensMJ: Ich hab keine Ahnung, wie Du deine Site baust, ich mach das mit meinem lokalen Webserver - und wenn sein muß - mit PHP-Debugger im Einzelschritt-Modus. (Es nervt nämlich auf Dauer, Variableninhalte oder Rückgabewerte immer über das Skript selbst ausgeben zu lassen.)


@Allgemeinheit:
Es geht den Benutzer einfach nichts an, was der genaue Grund für das "Nichtfunktionieren" einer Site ist. Entweder man gibt im "die"-Zweig irgendeinen kryptischen Fehlercode aus, oder man schickt den User per Redirect auf extra vorgehaltenen statischen Content. Dieser statische Content könnte alles mögliche sein - von einer abgespeckten (aber funktionierenden) HTML-Pur-Notfallvariante der HP bis zur laxen Fehlerseite ("Sorry, bla bla bla...").

bfn hevo