-
Verben konjugieren - mit Coniuno spielend leicht gelernt
Verben konjugieren - mit Coniuno spielend leicht gelernt
Verben konjugieren mit Coniuno
Verben konjugieren in Deutsch, Niederländisch, Englisch, Französisch, Italienisch, Spanisch, Portugiesisch und Latein
Verben konjugieren in Deutsch, Niederländisch, Englisch, Französisch, Italienisch, Spanisch, Portugiesisch und Latein
-


PayPal – Automatische eMail Kaufbestätigung an den Kunden mit IPN


IPN – Instant Payment Notification


Zurück zur Übersicht

III. Hinweise zum Debuggen


Der IPN Listener ist, wie eingangs erwähnt, ein Backend-Service.

Soll heißen, das Programm ist einfach auf dem Webserver gespeichert und wartet im Hintergrund darauf, dass es von irgendwoher angesprochen wird.
Dann führt es seinen Code aus und wartet wieder darauf erneut angesprochen zu werden.
Es gibt also keine echte Bildschirmausgabe (Message Dialoge, Textfelder, ListBoxen, Buttons etc.), die ihr zur Fehleranalyse verwenden könnt.


Es gibt aber trotzdem ein paar ganz gute Debug-Möglichkeiten:


1. Kompilieren (Parsen) der PHP Datei

Ihr habt zwar keine direkte Bildschirmausgabe, aber Syntaxfehler im PHP Code werden sehr wohl ausgegeben, wenn ihr die Datei über einen Internet Explorer startet (Chrome etc.).
Das könnt ihr aber nur auf eurer lokalen Festplatte machen.
Wenn ihr eine fehlerhafte PHP Datei auf den Webserver (in das Internet) kopiert und dann dort mit Chrome etc. öffnet, erscheint nur "HTTP:500 Interner Serverfehler".
(und ehrlich gesagt, das ist gut so, sonst könntet/müsstet ihr alle Fehlermeldungen aller PHP Seiten dieser Welt im Internet sehen)

Nur, wenn ihr die Datei lokal öffnet, also z.B. "c:\paypal\ipn-listener.php", dann wird die Datei als Textdatei geöffnet.
Ihr müsst euch also zunächst einen Webserver (z.B. Apache) installieren, dann könnt ihr die Datei über http://localhost/ipn-listener.php öffnen und die Fehlermeldungen werden angezeigt, z.B.:


parser error

Wenn ihr den Apache Webserver auf eurem Computer installiert habt (siehe Apache Webserver, Webseite), könnt ihr euren IPN Listener nach "C:\xampp\htdocs" kopieren und dann über "http://localhost/ipn-listener.php" laden.
Dann bekommt ihr die eventuellen Fehlermeldungen angezeigt.
Wenn die PHP Datei keine Syntaxfehler mehr enthält, bekommt ihr einfach einen weißen Bildschirm wenn ihr die Datei ladet. Das ist das Zeichen für "alles ok".


Hinweis

Die gängigen Internet Browser verfügen alle über einen Entwicklermodus, mit dem das Debuggen übersichtlicher und komfortabler wird.
Bei Chrome kann man diesen z.B. über die Taste F12 ein- bzw. wieder ausschalten.
Hier gibt es auch verschiedene Möglichkeiten Break-Punkte und Überwachungen zu setzen (standardmäßig allerdings nur für Javascript), falls ihr mal einen hartnäckigen Fehler loswerden müsst.

Ein möglicher Fehler auf Localhost sähe hier dann so aus:


parser error


2. Bildschirmausgabe über das echo-Kommando

Wenn die PHP Datei mal generell frei von Syntaxfehlern ist, dann könnt ihr den PHP Befehl "echo" verwenden, um Bildschirmausgaben zu erzeugen.
So könnt ihr z.B. Checkmarken setzen, wenn der Code in ein bestimmtes if-Statement läuft, oder auch Variablenwerte ausgeben.

z.B.

echo 'IPN Data read, next: opening socket<br>';

oder:

foreach ($_POST as $key => $value) ... echo 'read from POST: ' . $key.'='.$value . '<br>'; ... }

Hinweis: das <br> ist das HTML-<br> und bewirkt einen Zeilenumbruch bei der Bildschirmausgabe.


3. Schreiben einer log-Datei

Also, als Beispiel:

DEFINE("DEBUG", 1); // 1 = Debuggen if (DEBUG) { $arDbg = array(''); // create array array_push($arDbg, '>> IPN received <<'); // write debug info } ... foreach ($_POST as $key => $value){ // e.g. log the post data ... // received in the IPN if (DEBUG) array_push($arDbg, $key.'='.$value); ... } if ($Debug) { // write the debug info $strDbg = implode("\n", $arDbg); // copy array to string $inc = 0; // check if the log file do { $inc++; // exists already e.g. } while (file_exists('ipn'.$inc.'.log')); // ipn1.log, ipn2.log... file_put_contents ('ipn'.$inc.'.log', $strDbg); // store log file }


Hinweis, das file_put_contents Kommando hier, speichert das LogFile in das gleiche Verzeichnis, in dem sich auch der IPN Listener selber befindet.


4. Senden von Test Mails an euch selber

Wenn euer IPN Listener funktioniert und ihr den Gesamt-Ablauf testen wollt, könnt ihr über den Mailversand die Kundenmail an euch, statt an einen fiktiven Kunden, schicken.
Wenn ihr die Felder "From:", "To:" und "User:" auf eure eMail-Daten ändert (siehe Punkt 6 "Schicken der eMail an den Kunden" in Kapitel 2: Ein vollständiger IPN Listener), bekommt ihr selber die Mail und könnt schauen ob alles passt, bevor ihr wirklich live mit dem Programm geht.


Und natürlich könnt ihr so auch Fehlermails an euch selber schicken, etwa wenn die IPN Notification nicht verifiziert werden konnte, der Kunde schon in eurer Datenbank registriert ist, nicht der volle Preis bezahlt wurde, oder ähnliches.





Support:
Webmaster:
support@coniuno.de
webmaster@coniuno.de
Copyright © Helmut Bischoff 2005-2018. All rights reserved
 
Copyright H.Bischoff 2005-2018. All rights reserved