Veröffentlichungsdatum: 02. Dezember 2013
Änderungsdatum: 16. April 2024
formular versand daten protokollieren log protokollierung datenschutz dsgvo
Über ein Weblication Formular versandte Formulardaten können Sie optional auch in eine Log-Datei schreiben.
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).
...
//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));
}
...
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.
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.
...
//Mail-Daten zusätzlich in eine Datei schreiben
wReadWrite::writeFile($_SERVER['DOCUMENT_ROOT'].'/weblication/grid5/logs/mail_'.time().'_'.rand(1000, 9999).'.txt', serialize($mailData));
...
...
// 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.
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.
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.
...
// 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'].'/de/shop/logs/prot.csv', $mailDataCsv, 'a');
...
Weblication® CMS bietet in aktuellen Versionen beim Einsatz von wSMTP2 auch eine allgemeine Protokollierung, was in den Systemeinstellungen (Mailserver) aktiviert werden kann.