Blog
tags: news software php opensource webdesign howto
PHP Fehlermeldungen steuern
Ich hatte jüngst das Problem, daß ich, um Fehlern auf die Spur zu kommen, auf meinem hosted bzw shared Server Fehlermeldungen brauchte, um meine neuesten Skripte zu entfehlern. Das hat natürlich den faden Beigeschmack, daß auf der gesamten Seite nun Warnungen und Fehlermeldungen aktiviert waren. Nun fand ich bei php.net die Funktion "error_reporting". Schönes Ding! Nun läßt sich für jedes Skript die Fehlermeldung haarklein einstellen! Z.Bsp. so hier:
<?php
if ($_GET["debug"] == "TRUE")
{
ini_set("display_errors", 1);
}
else
{
ini_set("display_errors", 0);
}
error_reporting(E_ALL & ~E_NOTICE);
ini_set("log_errors", 1);
ini_set("error_log", "/path/to/php-error.log");
?>
Also, das E_ALL steht für: alles ausgeben, was an Hinweisen, Warnungen und Fehler so kommt.
& ~E_NOTICE bedeutet soviel wie "außer Hinweise". Also im Zusammenhang gibt die Zeile "error_reporting(E_ALL & ~E_NOTICE);" an: Zeige alles, außer Hinweise!
Das ini_set("display_errors", 0); ist so etwas wie ein Hauptschalter. "Anzeige von Fehlern an(1)/aus(0)".
log_errors bzw error_log behandelt das loggen von Fehlern in einer Logdatei...
Ich hoffe, das erspart jemandem die Zeit, lange danach zu suchen! :o)
Happy scripting!
Vielen Dank an Jörg, für das Beispiel mit den error-logs!
Kommentare
1) Jörg
17.Mar.2016 18:46
2) Jörg
17.Mar.2016 18:55
Das "else {" und "}" muss natürlich noch raus...
3) chris_blues
18.Mar.2016 13:50
Hast Du was dagegen, wenn ich das noch in das obige Beispiel einbaue?
4) Anonymous
18.Mar.2016 14:50
Stichworte sind php_admin_flag und php_admin_value ...
;-)
5) chris_blues
18.Mar.2016 14:53
6) Jörg
19.Mar.2016 13:27
In der .htaccess Datei funktionieren nur die Direktiven php_value und php_flag und dies auch nur, wenn sie für den betreffenden VirtualHost erlaubt sind ("AllowOverride Options" oder "AllowOverride All")
7) Jörg
21.Mar.2016 11:15
error_reporting sollte nicht auf 0 gesetzt werden - sonst wird ja nichts geloggt - ich würde error_reporting deswegen auch außerhalb des if Konstrukts definieren:
So werden grundsätzlich alle Fehler außer die Notices geloggt, und wenn ?debug=TRUE an die URL gehangen wird, werden diese Fehlermeldungen zusätzlich auf der Seite ausgegeben
8) Jörg
21.Mar.2016 11:19
9) chris_blues
21.Mar.2016 13:36
Hihi, da hat strip_tags ja sehr gründlich zugeschlagen! Muß ich ihm mal abgewöhnen.
Danke für die guten Tips!
10) Torben
22.Mar.2016 11:11
es gibt noch einige Fehlerausgaben mehr die sich steuern lassen:
http://php.net/manual/de/errorfunc.configuration.php
Wenn du also detailierte Meldungen haben möchtest, dann lässt sich das auch umsetzen. :)
Kommentar verfassen
Datenschutzerklärung
Ihre IP-Adresse, Browserinformation (useragent-string) etc werden von dieser Blogsoftware nicht gespeichert. Trotzdem könnte es sein, daß der Betreiber dieser Webseite solche Daten von Ihnen speichert. Das ist allerdings außerhalb der Reichweite dieser Blogsoftware. Bitte sehen Sie sich die Datenschutzerklärung der Webseite an um mehr darüber zu erfahren!
Diese Blogsoftware speichert generell keine Daten von Ihnen. Nur falls Sie einen Kommentar hinterlassen, müssen ein paar Daten gespeichert werden. Sie brauchen hier keine persönlichen Daten angeben. Abgesehen vom Kommentar selbst sind alle anderen Angaben freiwillig!
Es ist vollkommen in Ordnung falls Sie ihren Namen nicht angeben wollen, ihr Kommentar wird dann als 'anonym' angezeigt werden.
Falls Sie Benachrichtigungen erhalten wollen, wenn hier neue Kommentare erscheinen, dann brauchen wir dazu natürlich Ihre Emailadresse. Diese wird sicher gespeichert und nicht weitergegeben. Falls Sie nicht benachrichtigt werden wollen, lassen Sie das Feld Benachrichtigungen einfach leer.
Falls Sie Ihre Webseite mit Ihrem Namen verknüpfen wollen, brauchen wir natürlich Ihre Webadresse. Ansonsten kann auch dieses Feld leer bleiben.
Falls Sie einen Kommentar hinterlassen wollen werden folgende Daten gespeichert werden: