2012-06-19 45 views
5

比方說,我有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?

感謝

+0

'print_r($ _ POST)'; –

回答

7

$_POST所述陣列的狀態保存至使用var_export(與當前time(),以避免重寫)的文件,並且稍後檢查該文件。

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

我沒有解釋自己很好,但它看起來像你理解我的問題:)這個文件保存在哪裏? – Johan

+1

沒關係,這正是我所需要的。謝謝 – Johan

1

可以使用print_r在人類可讀的方式來檢查數據。

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

既然你迴應了服務器上的其他PHP腳本做一個內部的請求,你有幾種選擇:log it to syslog,它登錄到自己的日誌文件或數據庫,或者某個地方發送郵件。

+0

感謝您的評論,現在我將它保存到數據庫。但是在調試時,日誌聽起來更好 – Johan

0

爲PHP(適用於許多IDE,你需要可是以配置特定IDE)可以使用xdebug設置您可以輸出使用var_dumpprint_r後的值,斷點和inspect你的變量

5

,我我不遵守你爲什麼說你「不能」

有,事實上,幾種方法來調試後數據:

  • 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/