Prüfung der Daten

Prüfung der Daten

 

Zur Prüfung der XML Struktur habe ich eine XSD Datei erstellt in der  der Aufbau der XML Datei definiert ist.  Die Prüfung des Aufbaus erfolgt bei der Datenverarbeitung. Das Abprüfen gegen ein XSD Schema stellt sicher dass wir in unserer Anwendung mit einer gültigen XML Struktur arbeiten können. 

Für die inhaltliche Prüfung der einzelnen Einträge erstellen wir die Klasse „XMLGB_XMLGuestbookItemValidator“ in der  wir die einzelnen Datenfelder nach Inhalt und Gültigkeit prüfen. Die Prüfung der E-Mail Adresse habe ich hier mit der Funktion „filter_var“ abgebildet. Festzustellen ist jedoch dass wir  hier eine explizite Konvertierung der Wertes in einen String vornehmen müssen da sonst die auch ungültige Mail Adressen angenommen werden (siehe http://php.net/manual/de/function.filter-var.php).

class XMLGB_XMLGuestbookItemValidator
{
	
	/**
	 * validate a Item
	 *
	 * @param XMLGB_XMLGuestbookItem $Item a Item to validate
	 * @param bool					 $HTMLinText can HTML stored in Text
	 * 
	 * @return bool item is valid
	 *
	 */
	public static function isValid(XMLGB_XMLGuestbookItem $Item, $HTMLinText = false)
	{
		$_validationErrors = 0;
		
		if (empty($Item->Name)) {
			$_validationErrors++;
		}
		if (empty($Item->Text)) {
			$_validationErrors++;
		}
		if (empty($Item->Mail)) {
			$_validationErrors++;
		}
		if (!filter_var((string)$Item->Mail,FILTER_VALIDATE_EMAIL)) {
			$_validationErrors++;
		}
		if($_validationErrors>0) {
			return false;
		}
		// clean code_fragements
		$Item->Name = strip_tags($Item->Name);
		$Item->Title = strip_tags($Item->Title);
		$Item->Mail = strip_tags($Item->Mail);
		$Item->Homepage = strip_tags($Item->Homepage);
		if (!$HTMLinText) {
			$Item->Text = strip_tags($Item->Text);
		}
		return true;
	}

}