2017-07-29 113 views
0

有没有一种方法可以回应在通过json执行脚本期间发生的语法错误和其他php错误?通过json回声php错误

假设我有一个通过JQuery ajax提交数据的登录表单。通过post方法。

在我的php文件中,我得到了像$_POST['username']; $_POST['password'];这样的值。 然后检查详细信息是否正确,并在详细信息错误时回显json编码的成功消息或错误消息。 到那时,一切正常。

现在,如果我有一个语法错误或任何形式从PHP错误的说我没有正确地包括在其收集路径所需的文件我没有得到任何warning :fatal error:,如果没有,我会得到显示我的网页上使用json将数据发回我的页面。 这使得调试变得困难。 我试图使用try{//code}catch (EXEPTION $e),然后将$e->message();作为json编码消息的一部分返回到我的页面,但它仍然无法回显错误。 有人可以帮我解决这个问题吗?

+0

[检测PHP json中的坏json数据\ _decode()?](https://stackoverflow.com/questions/2348152/detect-bad-json-data-in-php-json-decode) – Ryosaku

+0

我看着这个问题,它不解决我的问题..我需要回声语法错误,警告和致命错误 –

+0

当你的开发服务器是在Linux上,只需运行'tail -f/var/log/httpd/error_log'或'tail -f/var/log/apache2/error_log'在一个单独的窗口中。为您节省了编写所有这些额外代码的麻烦,以便为每个AJAX调用提供错误报告 –

回答

0

不是试图将PHP错误记录到JavaScript并在那里输出,而是更容易观察错误日志。您可以在单独的窗口中打开它,并自动输出任何附加到日志文件的新错误。

在Linux或Mac打开一个终端,运行

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 

在Windows中,打开PowerShell中(包含在Windows默认设置),然后运行

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

注意,在生产环境中,你鼓励隐藏所有PHP错误信息到浏览器(只有error.log,至多告诉你的访问者'糟糕,出了问题'),所以编写这个额外的代码来处理错误将仅仅是为了的发展。