可以说我有2个页面:index.php和service.php
index.php向service.php发送一个http-post,每5分钟包含一次日期戳.
我如何在service.php上调试post变量?显然我不能做一个
if(isset($_POST['key'])) {
var_dump($_POST['key']);
}
Run Code Online (Sandbox Code Playgroud)
因为当我进入页面时它不存在.
在ASP.NET中我只会创建一个断点,但我如何检查php中发布的数据?
谢谢
$_POST使用var_export(使用当前time()以避免覆盖)将数组的状态保存到文件中,并稍后检查该文件.
file_put_contents( 'debug' . time() . '.log', var_export( $_POST, true));
Run Code Online (Sandbox Code Playgroud)
您可以使用var_dump或输出帖子的值print_r,我不遵循为什么你说你"不能"
实际上,有几种方法可以调试后期数据:
TamperData - 拦截和更改表单数据
HttpFox - 调试http请求
您还可以使用Firebug,它是一种出色的通用调试工具.使用"Net"面板,可以调试发送的后期数据和服务器的输出:
Firebug - 通用开发工具.
Firebug本身有扩展; 有一个名为FirePHP,它允许您将调试数据跟踪到Firebug控制台.我个人没有太多运气设置FirePHP,但我也没有提出过认真的尝试.
您还可以使用内置工具:Chrome(F12)或Firefox(CTRL+ SHIFT+ K)
使用以下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/