调试并检查$ _POST

时间:2012-06-19 20:55:59

标签: php

假设我有两页:index.php和service.php

index.php向service.php发送一个http-post,每隔5分钟发送一次日期戳。

我如何在service.php上调试post变量?显然我不能做一个

if(isset($_POST['key'])) { 
    var_dump($_POST['key']); 
} 

因为当我进入页面时它不存在。

在ASP.NET中我只会创建一个断点,但我如何检查php中发布的数据?

由于

5 个答案:

答案 0 :(得分:9)

使用$_POSTvar_export数组的状态保存到文件中(使用当前time()以避免覆盖),并稍后检查该文件。

file_put_contents( 'debug' . time() . '.log', var_export( $_POST, true));

答案 1 :(得分:5)

您可以使用var_dumpprint_r输出帖子的值,我不是在说你为什么说“不能”

确实有几种调试帖子数据的方法:

  • TamperData - 拦截并更改表格后期数据

  • HttpFox - 调试http请求

  • 您还可以使用Firebug,这是一款出色的通用调试工具。使用“Net”面板,可以调试发送的后期数据和服务器的输出:

    Firebug - 通用开发工具。

  • Firebug本身有扩展;有一个叫FirePHP,它允许您将调试数据跟踪到Firebug控制台。我个人没有太多运气设置FirePHP,但我也没有提出过认真的尝试。

  • 您还可以使用内置工具:Chrome( F12 )或Firefox( CTRL + SHIFT + < KBD>ķ)

  • 使用error_log命令将调试数据记录到错误日志中:

    error_log(“\ n”.serialize($ _ POST),3,“/ var / tmp / my-errors.log”);

<强>文档

PHP的var_dump - http://php.net/manual/en/function.var-dump.php

PHP的print_r - http://php.net/manual/en/function.print-r.php

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

使用FirePHP讨论Firebug的文章 - http://sixrevisions.com/web-development/how-to-debug-php-using-firefox-with-firephp/

答案 2 :(得分:1)

您可以使用print_r以人类可读的方式检查数据。

echo '<pre>';
print_r($_POST);

答案 3 :(得分:1)

由于您正在响应服务器上另一个PHP脚本发出的内部请求,因此您有几个选项:log it to syslog,将其记录到您自己的日志文件或数据库中,或者在某处发送邮件。

答案 4 :(得分:0)

for php(适用于许多IDE,但您需要配置特定的IDE),可以使用xdebug设置断点和inspect变量