2012-06-19 17 views
5

Lassen Sie uns sagen, dass ich habe 2 Seiten: index.php und service.php

index.php sendet eine HTTP-Post service.php, ein Datumsstempel einmal jede fünfte Minute enthält.

Wie würde ich die Post-Variablen auf service.php debuggen? Offensichtlich kann ich nicht einfach eine

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

tun, da es nicht existiert, wenn ich die Seite betrete.

In ASP.NET würde ich nur einen Haltepunkt erstellen, aber wie würde ich die geposteten Daten in PHP überprüfen?

Dank

+0

'print_r ($ _ POST)'; –

Antwort

7

Speichern Sie den Status des $_POST Array in eine Datei mit var_export (mit der aktuellen time() Überschreibungen zu vermeiden), und prüfen Sie die Datei später.

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

Ich erklärte mich nicht sehr gut, aber es sieht so aus, als ob du meine Frage verstanden hast :) Wo wird diese Datei gespeichert? – Johan

+1

Egal, das ist genau das, was ich brauchte. Danke – Johan

1

Sie print_r verwenden können Daten in einer für Menschen lesbaren Art und Weise zu untersuchen.

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

Da Sie auf eine interne Anfrage von einem anderen PHP-Skript auf dem Server gemacht sind, zu reagieren, haben Sie mehrere Möglichkeiten: log it to syslog, melden Sie es zu Ihrem eigenen Logdatei oder eine Datenbank oder eine E-Mail irgendwo senden.

+0

Danke für deinen Kommentar, jetzt im Speichern in einer Datenbank. Aber das Log klingt beim Debuggen nach besseren Optionen – Johan

0

für PHP (für viele IDE, müssen Sie Ihre spezifischen IDE jedoch konfigurieren) ein xdebug verwenden können Haltepunkte zu setzen und inspect Ihre Variablen

5

Sie können die Werte der Post mit var_dump oder print_r Ausgang I mehrere Möglichkeiten, um Debug-post-Daten am folgenden nicht warum, dass Sie sagen, dass Sie "nicht"

Es gibt in der Tat:

  • TamperData - int ercept und Änderungsformular Post-Daten

  • HttpFox - debug http fordern

  • Sie auch Firebug verwenden können, die ein ausgezeichnetes Allzweck-Debugging-Tool ist. Mit dem "Net" -Panel konnte man Debug-Post-Daten gesendet und die Server-Ausgabe:

    Firebug - Allzweck-Entwicklungstool.

  • Firebug hat Erweiterungen selbst; Es gibt einen, der FirePHP genannt wird, mit dem Sie Debug-Daten auf die Firebug-Konsole verfolgen können. Ich hatte persönlich nicht viel Glück dabei, FirePHP einzustellen, aber ich habe auch keinen ernsthaften Versuch unternommen.

  • Sie können auch integrierte Tools verwenden: in Chrome (F12) oder in Firefox (CTRL + SHIFT + K)

  • Log Debug-Daten in das Fehlerprotokoll mit error_log Befehl:

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

Dokumentation

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

Artikel Firebug mit FirePHP diskutieren - http://sixrevisions.com/web-development/how-to-debug-php-using-firefox-with-firephp/