ich möchte gerne eine Warning in einem php Skript abfangen.
Habe schon die Suchmaschine bemüht und gefunden, dass ich das Error Reportung mittels error_reporting() beinflussen kann.
Allerdings will ich in meinem Skript die Warning schon gerne mitbekommen, wie mache ich das am besten?
er springt da allerdings nicht in den Catch Fall aber bringt eine Warning falls der Mailserver nicht erreichbar ist .
Mache ich was falsch oder liegt es wirklich daran das es eine Warning und keine Exception ist?
ich versteh zwar nicht so ganz, was Du willst…
Aber wenn Du nur eine Warnung unterdrücken willst, dann setz einfach ein @ an den Anfang der verursachenden Zeile bzw des befehls…
Ich will nicht das die Warning ausgegeben wird, statt dessen will ich im Falle der Warning selbst eine Ausgabe machen wie z.B. „Der Mailserver ist im Moment nicht erreichbar“. Das schaut dann besser aus als „Warning: Failed to connect to smtp via port 25 in xy.php on Line xy“ oder sowas.
Grüße
Pako
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich will nicht das die Warning ausgegeben wird, statt dessen
will ich im Falle der Warning selbst eine Ausgabe machen wie
z.B. „Der Mailserver ist im Moment nicht erreichbar“. Das
schaut dann besser aus als „Warning: Failed to connect to smtp
via port 25 in xy.php on Line xy“ oder sowas.
ok, das ist verständlicher
versuchs mal mit
if (@mail($anweisungen)) echo „Mail wurde versendet“;
else echo „Fehler beim mailversand“;
Theoretisch kann man das auch verkürzen mit
if (@!mail($anweisungen)) echo „Fehler…“;
ich bin mir nur nicht ganz sicher, ob es nicht !@ sein müsste… aber ich denke eigentlich @! ist richtig
Also Warnings selber abfangen so das sie nicht ausgegeben werden und nicht angezeigt werden ist meines Wissens nicht so direkt möglich.
Ich kenn nur zwei Möglichkeiten
Möglichkeit
Wie MunichFreak schon sagte mit @ kannst du Warnungen unterdrücken. Und z.b. bei Funktionen kannst du ja ein false zurückliefern (bzw bei PHP Funktionen kommt immer wenn was nicht klappt ein false oder 0 oder NULL oder -1 zurück). Das kannst du dann mit einem IF abfragen.
Ist aber sehr umständlich, macht den Code langsamer da du überall if abfragen hast und ist nicht das optimum.
Möglichkeit
Soweit ich mich erinnere kann man die Warnings umleiten in ein Log. Ich hab das mal vor langer Zeit gesehen das das geht. Bzw kann es auch sein das die Automatisch in ein Log geschrieben werden. Dort könnte man also mal ansetzen.
Mehr fällt mir dazu gerade auch nicht ein.
Und ja die Exceptions waren wirklich nur für selbstdeklarierte oder erzeugte Fehler die man abfangen will.