2017-07-29 6 views
0

Gibt es eine Möglichkeit, Syntaxfehler und andere PHP-Fehler, die während der Ausführung eines Skripts durch JSON auftreten.Echo PHP-Fehler durch JSON

Angenommen, ich habe ein Anmeldeformular, das Daten über JQuery ajax übermittelt. Per Post-Methode.

In meiner PHP-Datei bekomme ich die Werte so $_POST['username']; $_POST['password'];. Überprüfen Sie dann, ob die Details korrekt sind, und geben Sie eine JSON-codierte Erfolgsmeldung oder eine Fehlermeldung aus, wenn die Details falsch sind. An diesem Punkt funktioniert alles gut.

Nun, wenn ich einen Syntaxfehler oder irgendeine Art von Fehler von PHP haben sagen, dass ich nicht eine benötigte Datei richtig in seinem collect Pfad enthalten habe ich nicht bekommen, jede warning : oder fatal error:, die ich auf meiner Seite bekommen angezeigt würde, wenn nicht tun Verwenden Sie JSON, um Daten zurück zu meiner Seite zu senden. Dies erschwert das Debugging. Ich habe versucht, try{//code}catch (EXEPTION $e) dann einschließlich der $e->message(); als Teil der JSON-codierten Nachricht zu verwenden ist auf meiner Seite zurück, aber es ist immer noch nicht in der Lage, die Fehler zu echo. Kann mir bitte jemand helfen, das zu lösen?

+0

Mögliches Duplikat von [Detect bad json Daten in PHP json \ _decode()?] (Https://stackoverflow.com/questions/2348152/detect-bad-json-data-in-php-json-decode) – Ryosaku

+0

Ich schaute auf diese Frage und es löst nicht mein Problem .. Ich brauche Syntaxfehler, Warnungen und fatale Fehler Echo –

+0

Wenn Ihr Entwicklungs-Server auf Linux ist, führen Sie einfach 'tail -f/var/log/httpd/Fehler_log' oder 'tail -f/var/log/apache2/error_log' in einem separaten Fenster. Erspart Ihnen die Mühe, all diesen zusätzlichen Code für die Fehlerberichterstattung für jeden einzelnen AJAX-Anruf zu schreiben. –

Antwort

0

Anstatt zu versuchen, PHP-Fehler in JavaScript zu protokollieren und sie dort auszugeben, ist es viel einfacher, das Fehlerprotokoll zu sehen. Sie können es in einem separaten Fenster öffnen und automatisch alle neuen Fehler ausgeben lassen, die an die Protokolldatei angehängt wurden.

Unter Linux oder Mac öffnen Sie ein Terminal und

tail -f /var/log/apache2/error.log 
// Or 
tail -f /var/log/httpd/error_log 
// Depending on your installation, error log may be in a different location 

Unter Windows öffnen Powershell (im Lieferumfang standardmäßig in Windows) und

Get-Content C:\Path\To\error.log -Last 10 -Wait 
// Location of the log-file is highly dependent on the used installation 

Hinweis laufen laufen, dass auf einer Produktionsumgebung Sie ermutigt werden, um alle PHP-Fehlerinformationen an den Browser überhaupt zu verstecken (nur an die error.log, höchstens sagen Sie Ihrem Besucher "Hoppla, etwas ist schiefgelaufen"), so würde das Schreiben dieses zusätzlichen Codes für die Fehlerbehandlung nur dem Willen dienen der Entwicklung.