比方說,我有2頁:index.php文件和service.php
index.php文件發送一個HTTP-POST到service.php,包含郵戳一次第5分鐘。
我將如何調試service.php後的變量?顯然我不能只做一個
if(isset($_POST['key'])) {
var_dump($_POST['key']);
}
因爲它不會存在,當我進入該頁面。
在ASP.NET中,我只是創建一個斷點,但我將如何檢查發佈的數據在PHP?
感謝
比方說,我有2頁:index.php文件和service.php
index.php文件發送一個HTTP-POST到service.php,包含郵戳一次第5分鐘。
我將如何調試service.php後的變量?顯然我不能只做一個
if(isset($_POST['key'])) {
var_dump($_POST['key']);
}
因爲它不會存在,當我進入該頁面。
在ASP.NET中,我只是創建一個斷點,但我將如何檢查發佈的數據在PHP?
感謝
可以使用print_r在人類可讀的方式來檢查數據。
echo '<pre>';
print_r($_POST);
既然你迴應了服務器上的其他PHP腳本做一個內部的請求,你有幾種選擇:log it to syslog
,它登錄到自己的日誌文件或數據庫,或者某個地方發送郵件。
感謝您的評論,現在我將它保存到數據庫。但是在調試時,日誌聽起來更好 – Johan
,我我不遵守你爲什麼說你「不能」
有,事實上,幾種方法來調試後數據:
TamperData - INT ercept和改變形式後的數據
HttpFox - 調試HTTP請求
您也可以使用Firebug,這是一個很好的通用調試工具。使用「Net」面板,可以調試發送的數據和服務器的輸出:
Firebug - 通用開發工具。
Firebug本身有擴展;有一個叫FirePHP,它允許你跟蹤調試數據到Firebug控制檯。我個人沒有太多的運氣設置FirePHP,但我還沒有提出認真的嘗試。
您還可以使用內置的工具:在Chrome(F12),或在Firefox(CTRL + SHIFT + ķ)
登錄調試數據錯誤日誌使用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討論螢火蟲 - http://sixrevisions.com/web-development/how-to-debug-php-using-firefox-with-firephp/
'print_r($ _ POST)'; –