在哪里找到PHP输出/日志


where to find PHP output / log

我是一个初级web开发人员,特别是PHP和一些前端技术(HTML,CSS,JS/JQuery)。我发现在某些情况下,很难找到PHP代码中的错误。下面是其中一个例子:

在HTML页面中,我使用JQuery向PHP文件提交(使用post)表单以进行后端事务。因为我使用的是JQuery,所以页面不会被重定向到PHP页面,所以如果PHP代码有一些错误(甚至是一些愚蠢的语法/SQL错误),当我们用普通的导航器测试它们时,很难检测到它们。

我的问题是:如果我在上面的情况下在PHP页面中使用echo,输出将驻留在哪里?我认为应该存在一些日志文件用于所有这些类型的输出。更重要的是,如果JavaScript中存在一些错误,是否有什么技巧可以快速定位错误?

PS:我在MAC OS下使用PHPStorm作为IDE

当你正在运行AJAX(听起来从你的问题判断),所有的jQuery正在做的是请求页面'为你'。所以你可以直接看到输出,jQuery会为你"捕获"它。AJAX请求只不过是一个普通的HTTP请求,只是在后台,所以您不会看到它。

因此,

;当你'echo'一些东西时,它只会被jQuery和处理,因此发送到你的浏览器

有一些工具(如firebug)允许您查看ajax消息中的请求和响应,从而显示可能的错误或不同的输出。它是一个全面的调试器,因此您还可以看到呈现的HTML和/或JavaScript错误。

如果你正在使用PHPstorm,我建议你看看Xdebug。你必须从你的服务器上启用Xdebug模块,你可以用断点和变量来管理php。

当您正在开发PHP页面时,ajax从哪里请求,使它们首先在屏幕上输出结果,测试它们,然后进行jquery请求,当您确定它们输出正确的东西

对于firefox使用"Firebug"控制台,对于chrome使用"Firebug lite"或按"F12"打开IE。您将看到控制台。在这里,您可以看到正在进行的ajax请求和响应。

具体回答你的问题;在您的示例中,echo的输出将出现在对post请求的响应中。通常情况下,这将是页面重新加载,但在ajax请求(如您所述),你没有得到。

使用浏览器开发工具,如chrome中的Inspector或Firefox中的firebug,允许您查看来自post请求的Ajax响应

您还可以在ajax

的成功部分使用console.log Javascript方法记录响应。
$(function() {
    $.ajax({
        // snip
        success: function(response) {
            console.log(response);
        }
    });