假设我有两页: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中发布的数据?
由于
答案 0 :(得分:9)
使用$_POST
将var_export
数组的状态保存到文件中(使用当前time()
以避免覆盖),并稍后检查该文件。
file_put_contents( 'debug' . time() . '.log', var_export( $_POST, true));
答案 1 :(得分:5)
您可以使用var_dump
或print_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)