Formulardaten protokollieren

Über ein Weblication Formular versandte Formulardaten können Sie optional auch in eine Log-Datei schreiben.

Protokollierung bei Kontakt-Formularen (writeDataToCSV)

Ab CMS-Version 18 und aktueller BASE (Mobile First):

Formulare der aktuellen BASE (Mobile First) sind bereits im Standard so umgesetzt, dass die abgeschickten Formulardaten optional auch in einer CSV Protokoll-Datei gespeichert werden können.

Rufen Sie hierzu das entsprechende Formular über den Formulareditor (Zusatzmodul bis Core Business) zur Bearbeitung auf. Über die "Erweiterten Formulareinstellungen" finden Sie in der Box "Nach dem Absenden auszuführendes Skript" bereits eine im Standard schon gesetzte Abfrage (siehe nachfolgenden Auszug).

Beispiel: Auszug aus der Box "Nach dem Absenden auszuführendes Skript" - Mail-Daten in CSV schreiben

...
//Mail-Daten zusätzlich in eine Datei schreiben
//...

if($this->saveInCSV && method_exists('wForm', 'writeDataToCSV')){
$csvData = $mailData;
unset(
$csvData['wFormData']);
unset(
$csvData['contentType']);
$this->writeDataToCSV($csvData, array('archiveIfHeaderChanged'=> true));
}
...
Formulareinstellungen - Mail-Daten speichern
Formulareinstellungen - Mail-Daten speichern

In den erweiterten Formulareinstellungen müssen Sie lediglich die Checkbox "Mail-Daten in CSV-Datei speichern" aktivieren, um die Protokoll-Funktion zu aktivieren. Unterhalb der Checkbox kann optional der Pfad zur CSV-Datei angegeben werden.

Protokollierung bei Kontakt-Formularen (writeFile)

Schon vor Weblication® CMS Version 18 möglich:

Weblication® CMS Formulare sind bereits im Standard so umgesetzt, dass die abgeschickten Formulardaten optional auch in einer Protokoll-Datei gespeichert werden können.

Rufen Sie hierzu das entsprechende Formular über den Formulareditor (Zusatzmodul bis Core Business) zur Bearbeitung auf. Über die "Erweiterten Formulareinstellungen" finden Sie in der Box "Nach dem Absenden auszuführendes Skript" bereits eine im Standard schon vordefinierte Zeile (auskommentiert, siehe unten).

Indem Sie die Zeile unterhalb der Kommentarzeile "Mail-Daten zusätzlich in eine Datei schreiben" einkommentieren (ohne Doppelslash beginnend) setzen Sie diese Funktion nach Speichern der Formularseite bereits aktiv.

Formular-Daten protokollieren
Formular-Daten protokollieren

Beispiel 1: Auszug aus der Box "Nach dem Absenden auszuführendes Skript" - Mail-Daten serialisiert schreiben

...
//Mail-Daten zusätzlich in eine Datei schreiben
wReadWrite::writeFile($_SERVER['DOCUMENT_ROOT'].'/weblication/grid5/logs/mail_'.time().'_'.rand(1000, 9999).'.txt', serialize($mailData));
...

Beispiel 2: Auszug aus der Box "Nach dem Absenden auszuführendes Skript" - Mail-Daten in CSV schreiben

...
// Mail-Daten zusätzlich in eine Datei schreiben
// Linefeeds und Carriage-Returns in Leerzeichen umwandeln
$stripText = function($text){
$text = strip_tags($text);
$text = str_replace(array("\n","\r"), ' ', $text);
return
$text;
};

$subject = $mailData['subject'];
$lastname = $mailData['lastname'];
$firstname = $mailData['firstname'];
$email = $mailData['email'];

// Mehrfachauswahl (Checkboxen)
$sportarten = array();
$sportartenString = '';
foreach(
$mailData['sportarten'] as $sportart){
$sportarten[] = $sportart;
}
$sportartenString = implode(',', $sportarten);
$sportarten = $sportartenString;

$message = $stripText($mailData['message']);

$mailDataCsv = $subject.";".$lastname.";".$firstname.";".$email.";".$sportarten.";".$message."\n";
// Verzeichnis der CSV-Datei unbedingt mit Zugriffsschutz versehen!
wReadWrite::writeFile($_SERVER['DOCUMENT_ROOT'].'/base/kontakt/logs/prot.csv', $mailDataCsv, 'a');
...

Den Pfad der Datei, die die Formulardaten als Textdatei speichert, können Sie im Framework-Aufruf selber festlegen. Ebenso können Sie bestimmen, wie die Formular-Daten in die Datei geschrieben werden.

Tipp

Mit neuen Versionen ab CMS-Version 17 steht eine weitere Möglichkeit zur Verfügung, welche direkt zur Framework-Funktion PHP Framework-Funktion wReadWrite::writeFileCSVArray beschrieben ist.

Protokollierung zum Shop-Bestellformular

Auch beim Einsatz des Mini-Shop Weblics® können Sie die Bestelldaten protokollieren. Dies nehmen Sie ähnlich der oben angeführten Beispiele direkt im Quelltext des Formulares innerhalb der bestellung.php im Shop-Verzeichnis vor.
$mailData['orderData'] definieren Sie dann am besten auch über die Funktion für Linefeeds und Carriage-Returns (siehe nachfolgendes Quelltextbeispiel).

Sofern Paypal als Zahlmethode (zusätzlich) genutzt wird, tragen Sie dies auch in der bezahlung-ok.php ein.

Beispiel 3: Auszug aus bestellung.php - Mail-Daten in CSV schreiben

...
// Mail-Daten zusätzlich in eine Datei schreiben
// Linefeeds und Carriage-Returns in Leerzeichen umwandeln
$stripText = function($text){
$text = strip_tags($text);
$text = str_replace(array("\n","\r"), ' ', $text);
return
$text;
};

$orderID = $mailData['orderID'];
$orderDate = $mailData['orderDate'];
$orderTime = $mailData['orderTime'];
$subject = 'Sie haben eine Bestellung erhalten '.$orderID;
$title = $mailData['title'];
$lastname = $mailData['lastname'];
$firstname = $mailData['firstname'];
$street = $mailData['street'];
$zip = $mailData['zip'];
$town = $mailData['town'];
$country = $mailData['country'];
$email = $mailData['email'];
$payment = $mailData['payment'];

$orderData = $stripText($mailData['orderData']);
// sofern die Bestelldaten nicht als ein String, sondern konkret ausgelesen und protokolliert
// werden sollen, bietet sich die Framework-Funktion wCart::getArticles() zur Weiterverarbeitung an.

$message = $stripText($mailData['message']);

$mailDataCsv = $orderID.";".$orderDate.";".$orderTime.";".$subject.";".$title.";".$lastname.";".$firstname.";".$street.";".$xxx.";".$zip.";".$town.";".$country.";".$email.";".$payment.";".$orderData.";".$message."\n";
// Verzeichnis der CSV-Datei unbedingt mit Zugriffsschutz versehen!
wReadWrite::writeFile($_SERVER['DOCUMENT_ROOT'].'/basec/shop/logs/prot.csv', $mailDataCsv, 'a');
...

Allgemeine Protokollierung zum Mailserver

Weblication® CMS bietet in aktuellen Versionen beim Einsatz von wSMTP2 auch eine allgemeine Protokollierung, was in den Systemeinstellungen (Mailserver) aktiviert werden kann.

Wichtige Hinweise

  • Beachten Sie die Richtlinien für den Datenschutz, wenn Sie Formulardaten von Seitenbesucher protokollieren!
  • Schützen Sie die Protokolldatei vor unberechtigtem bzw. fremdem Aufruf. Dies können Sie z.B. über eine .htaccess Datei im entsprechenden Verzeichnis realisieren, wie Sie es im Verzeichnis /weblication/grid5/logs bereits beispielhaft umgesetzt finden.