Wie man PHP-Fehler anzeigen? (Ich habe ini_set und error_reporting, aber gibt nur 500 auf Fehler)
So, ich habe eigentlich gar keine Fehler in meiner aktuellen web-Seite, aber ich möchte in der Lage sein, um zu sehen, einen Fehler, wenn Sie auftauchen, statt der HTTP-500 Fehler Seite. Ich googelte ein bisschen herum und dachte, das hinzufügen dieser beiden Zeilen würde alles beheben.
ini_set('display_errors', 'On');
error_reporting(E_ALL);
HINWEIS: ich habe keinen Zugriff auf die php.ini-Datei, da bin ich mit meiner Schule Konto-server.
Also stellte ich ein bug (kein Semikolon nach $buggy) so wie an der Spitze meiner Seite:
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$buggy
$x = 4 + 2;
...
Jedoch bekomme ich nur ein Server-Fehler:
"Die website hat einen Fehler beim abrufen http://mywebpage.com/. Es kann für Wartungsarbeiten heruntergefahren oder falsch konfiguriert."
Irgendwelche Ideen?
EDIT:
Habe ich neu konfiguriert mein code:
<?php
include_once 'database/errorSettings.php';
?>
<?php
$buggy //whoops
$x = 4 + 2;
...
errorSettings.php ist die folgende:
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
Aber es funktioniert immer noch nicht... falsche Art und Weise neu zu konfigurieren?
InformationsquelleAutor der Frage | 2012-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie haben, ist ein parse error. Diejenigen, die geworfen werden, bevor code ausgeführt wird. Eine PHP-Datei muss analysiert werden, in seiner Gesamtheit, bevor irgendein code ausgeführt werden kann. Wenn es einen parse error in der Datei, wo Sie Einstellung Ihre Fehler-levels, Sie wird nicht wirksam durch die Zeit, die der Fehler ausgelöst wird.
Entweder brechen Sie Ihre Dateien in kleinere Teile, wie die Einstellung der Fehler-Ebenen in einer Datei und dann
include
ing eine andere Datei enthält den eigentlichen Programmcode (und Fehler), oder legen Sie die error-levels ausserhalb PHP, mit php.ini-oder .htaccess-Direktiven.InformationsquelleAutor der Antwort deceze
Müssen Sie den error_reporting-Wert in einem .htaccess-Datei. Da gibt es einen parse-error, es läuft niemals mit der error_reporting () - Funktion in Ihrem PHP-code.
Versuchen, diese in einem .htaccess-Datei (vorausgesetzt, Sie verwenden können):
Ich denke 30719 entspricht E_ALL, aber ich könnte falsch sein.
Edit Update: http://php.net/manual/en/errorfunc.constants.php
InformationsquelleAutor der Antwort Nick Clark
Zugabe zu dem, was deceze oben gesagt. Dies ist ein parse error, also um zu Debuggen, analysieren Fehler, erstellen Sie eine neue Datei im root namens debugSyntax.php. Setzen Sie diese in es:
Laufen debugSyntax.php Seite und es wird angezeigt parse Fehler von der Seite, die Sie wählten, um zu testen.
InformationsquelleAutor der Antwort Matt
Schreiben Sie einfach folgenden code auf der Spitze der PHP-Datei:
InformationsquelleAutor der Antwort Mehul V.
Ich habe dieses problem bei der Verwendung von PHP5.4 und Plesk 11.5
Irgendwie, die Fehler-reporting und-Anzeige Fehler-Einstellungen im Plesk domain-Konfiguration-Seite wurden komplett überschreiben alle lokalen Einstellungen .htaccess oder die PHP-Skripte. Ich habe nicht gefunden, einen Weg, um dies zu verhindern, nutzen Sie also die Plesk-Einstellungen zu drehen error-reporting auf und ab.
Müssen Sie möglicherweise Einstellungen in Ihrer php.ini, die verhindert, dass die lokale site überschreiben diese Einstellungen, vielleicht durchgesetzt werden, indem die control-panel auf Ihrem server.
InformationsquelleAutor der Antwort Jason
Menschen mit Codeigniter (ich bin auf C3):
Den index.php Datei überschreiben, php.ini-Konfiguration, so dass auf index.php Datei, Zeile 68:
Können Sie diese option ändern, um festzulegen, was Sie brauchen. Hier die komplette Liste:
Hoffe, es hilft.
InformationsquelleAutor der Antwort Marcelo Agimóvel
Syntax-Fehler ist nicht so einfach überprüft in externen Servern, nur Laufzeitfehler.
Was kann ich tun? Genau wie du, ich benutze
Jedoch vor laufen, ich check syntax-Fehler in einer PHP-Datei mit einem online-PHP-syntax-checker.
Die besten, IMHO ist PHP-Code-Checker
Kopiere ich alle source-code fügen Sie innerhalb der main box und klicken Sie auf die
Analyze
- Taste.Es ist nicht die praktischste Methode, aber die 2 Verfahren sind komplementär und es löst das problem ganz
InformationsquelleAutor der Antwort Paulo Buchsbaum