如何在服务器上调试 PHP POST 脚本并查看 echo 输出


how to debug a php post script on the server and see echo output

>新手问题。我有一个网页将 $_POST 的数据发送到服务器上的 php 脚本。如何调试 php(参见 echo 的输出(?如果我只是浏览到 www.serveradress.com/myscript.php,I 什么也没看到......我正在使用浏览器。

谢谢

编辑:我在客户端使用ngFileUpload。编辑:我看到该文件很受欢迎,因为我在服务器上看到它与filezilla。

客户端:

$scope.uploadBoardPic = function(file, errFiles) {
    $scope.boardPic = file;
    $scope.errFile = errFiles && errFiles[0];
    if (file) {
        file.upload = Upload.upload({
            url: 'http://myserver.com/angular-seed/appendBoardPicture.php',
            method: 'POST',
            data: {file: file}
        });
        file.upload.then(function (response) {
            $timeout(function () {
                file.result = response.data;
            });
        }, function (response) {
            if (response.status > 0)
                $scope.errorMsg = response.status + ': ' + response.data;
        }, function (evt) {
            file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
        });
    }   
}

服务器端:

<?php
$filename = $_FILES['file']['name'];
$destination = './' . $filename;
move_uploaded_file( $_FILES['file']['tmp_name'] , $destination );
echo "<pre>" . print_r($_FILES, true) . "</pre>";
?>

Php 将 POST 变量保留在 $_POST 全局范围内。 你应该能够运行一些影响

echo "<pre>" . print_r($_POST, true) . "</pre>";

获取所需的调试信息。 当然,这只有在您通过表单进行有效的 POST 时才有效。 这意味着页面实际上会发生变化。 不过,看看你的问题,看起来你正在为你的帖子/回复使用所有 javascript。 在这种情况下,您需要在javascript中查找来自php的回复信息。 您可以在提交期间通过查看网络选项卡来执行此操作。

作为一种好的做法,您应该为此类任务使用错误日志。如果您尚未设置错误日志,则应在 apache 配置文件中进行设置。

设置错误日志后,只需键入以下内容:

error_log(var_export($_POST, true));

您可以在错误日志中看到导出。

http://php.net/manual/en/function.error-log.php