Wie unterdrücke ich fehlermeldungen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auftreten
ausgabe
benutzer
code
datenbank
fehler
fehlermeldung
fehlerquelle
funktion
glauben
idealfall
klemme
manual
passieren
problem
setting
sinn
url
verbindung
verwendung
-
hallo!
ich habe noch relativ wenig erfahrung in der programmierung mit php und habe jetzt ein problem. ich habe mich hier im forum schon ein bisschen belesen und erfahren das man fehlermeldungen mit einem @-symbol unterdrücken kann.
allerdings funktioniert das bei mir nicht oder besser gesagt ich weiß nicht genau, wo ich das symbol hinsetzen soll. ich würde mich über eine schnelle antwort freuen.
beispiel:
$variable = "be fehl";
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du machst z.B.:
@echo "Hallo!";
Dann wird keine Fehlermeldung ausgegeben, wenn die Ausgabe fehlschlägt.
Beitrag zuletzt geändert: 9.5.2009 12:12:24 von cookies -
bei sowas eher nicht. weiß ich nicht für sowas hab ichs noch nie gebraucht.
aber z.b.
$mysqldb = @mysql_connect("peterporno.de","falschername", "falschespasswort");
würd so keine fehlermeldung ausgeben.
ansonsten wenn du im ganzen skript nur fatale fehler sehen willst:
error_reporting(E_ERROR);
an den anfang
mist da war wieder ein keks schneller -
Das ist auch nicht bei allem sinnvoll. Z.B. bei echo oder einer Variablenzuweisung ist es nicht sinnvoll. Aber wenn du was mit Datenbanken, FTP oder IMAP machen willst, wo ein anderer Server noch eine Rolle spielt, sollte man es dann so machen:
@ftp_connect(...) or die('Fehler bei der Verbindung!');
-
Meinst du sowas?
Da wird die Fehlermeldung von MySQL unterdrückt und deine Fehlermeldung angezeigt.
Das "or die" kannst du auch weglassen, dann wird aber kein Fehler, wenn einer da ist angezeigt.
<?php $verbindung = @mysql_connect('mysql.lima-city.de, 'USER', 'Passwort') or die ("Verbindung fehlgeschlagen."); $db = @mysql_select_db('Datenbank') or die ("Die Datenbank existiert nicht."); ?>
-
t-li schrieb:
speziell meine ich... $sql = "LOCK TABLES settings WRITE";
Das ist eine Wertzuweisung, da braust du das nicht.
Dann solltest du aber das machen:
@mysql_query($sql);
-
wäre das zb
$result = db_query($sql) or die(db_error(LINK));
$result = @db_query($sql) or die(db_error(LINK));
??? -
t-li schrieb:
wäre das zb$result = db_query($sql) or die(db_error(LINK));
$result = @db_query($sql) or die(db_error(LINK));
???
Das zweite musst du da machen. Also:
$result = @db_query($sql) or die("Fehler! MySQL meldet: ".db_error(LINK));
-
irgendwie klappts nicht, kann aber auch am browser cache liegen, hab alle db_querys entfernt. weißt du wie man den cache löschen kann??
-
Wenn du Firefox hast, geht das mit Strg+F5, dann wird die Seite ohne Cache geladen!
-
seltsam,es funktioniert trotzdem nicht :(((
kennst du dich gut mit php aus? dann kann ich dir vllt die datei schicken und du korrigierst das oder so. ich krieg es wohl nicht ganz hin...
den code wirst du unter t-li.lima-city.de/newday.txt finden.
ich würde mich sehr darüber freuen, es muss auch nicht sofort sein. aber sag bitte bescheid wenn du es machst / nicht machst.
ich danke dir vielmals im vorraus, -
Ich probiers mal!
Das einzige, was da falsch sein könnte ist das require. Existiert die Datei common.php?
Beitrag zuletzt geändert: 9.5.2009 21:22:54 von cookies -
ja. aber wenn alles hochgeladen ist, funktioniert die newday.php nicht mehr und es erscheint diese fehlermeldung mit lock tables access denied oder so. wenn du 3 minuten wartest lad ich alles rauf
//Edit: uups mir ist grad aufgefallen dass das hier der pc ist wo kein ftp program drauf ist...
Beitrag zuletzt geändert: 9.5.2009 21:50:20 von t-li -
Man sollte Fehlermeldungen nicht über @ unterdrücken. Zum einen wird die Ausführungszeit unnötigt verlangsamt und zum anderen wird die Ausgabe von Fehlern mittels "display_errors" = "off" wesentlich effektiver ausgeblendet. Denn wenn ein Fehler stattfindet hat man in aller Regel eh einen Mechanismus der einen darauf aufmerksam macht.
-
funktioniert dann das programm eigentlich trotzdem??
-
Klar, solange eben kein Fehler auftritt ;)
Du kannst dir zb. bei Fehlern eine eMail zuschicken lassen. Dazu musst du dir lediglich einen eigenen Error Handler schreiben. -
und damit das programm funktioniert, darf kein fehler auftreten, egal ob unterdrückt oder nicht
stimmt das? wenn ja, hätte ich nämlich ein problem^^ -
Kommt ganz darauf an was für ein Fehler das ist ;)
Kann zb. ein Logik-Fehler sein, eine fehlerhafte SQL Abfrage. Dateizugriffsfehler oder was auch immer. Menschen machen nun einmal Fehler ;) -
LOCK TABLES settings WRITE
oder so...
//edit: geh auf meinen webspache, auf den link gaanz unten und auf 'character erstellen'
Beitrag zuletzt geändert: 11.5.2009 17:45:36 von t-li -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage