Skip to content

Latest commit

 

History

History
executable file
·
261 lines (180 loc) · 8.3 KB

yform_modul_validates.md

File metadata and controls

executable file
·
261 lines (180 loc) · 8.3 KB

YForm-Modul: Validierung

Inhalt

Zweck der Validierungen

Mit diesen Klassen lassen sich Values überprüfen. Bei einer negativen Validierung wird eine entsprechende Warnung ausgegeben.

Die Validate-Feldklassen werden wie Values und Actions im Formbuilder im Feld Felddefinitonen eingetragen. Dabei muss immer der Name der Value-Feldklasse angegeben, der validiert werden soll.

Die Validate-Klassen sind hier zu finden:
src/addons/yform/lib/yform/validate/

Die PHP-Beispiele können in diesem Basis-Formular getestet/eingesetzt werden:

<?php
$yform = new rex_yform();
$yform->setObjectparams('form_action', rex_getUrl(REX_ARTICLE_ID,REX_CLANG_ID));

$yform->setValueField('text', array("wert1","Wert 1"));
$yform->setValidateField('empty', array("wert1","Bitte geben Sie einen Namen an!"));

echo $yform->getForm();
?>

Validierungs-Klassen

compare

Vergleicht zwei Felder mit Hilfe von Operatoren.

// allgemeine Definition
validate|compare|label1|label2|[!=,<,>,==,>=,<=]|warning_message|

// im YForm-Formbuilder
text|wert1|Wert 1|
text|wert2|Wert 2|
validate|compare|wert1|wert2|!=|Die beiden Felder haben unterschiedliche Werte|

// in PHP
$yform->setValueField('text', array("wert1","Wert 1"));
$yform->setValueField('text', array("wert2","Wert 2"));
$yform->setValidateField('compare', array("wert1","wert2","!=", "Die Felder haben unterschiedliche Werte"));

Hinweis: Mögliche Vergleichs-Operatoren sind !=, <, >, ==, >=und <=

compare_value

Vergleicht ein Feld mit einem angegebenen Wert mit Hilfe von Operatoren.

// Definition
validate|compare_value|label|value|[!=,<,>,==,>=,<=]|warning_message

// Im YForm-Formbuilder
text|wert1|Wert 1|
validate|compare_value|wert1|2|<|Der Wert ist kleiner als 2!|

// In PHP
$yform->setValueField('text', array("wert1","Wert 1"));
$yform->setValidateField('compare_value', array("wert1","wert2","<", "Der Wert ist kleiner als 2!"));

Hinweis: Mögliche Vergleichs-Operatoren sind !=, <, >, ==, >= und <=

customfunction

Damit können eigene Überprüfungen via Funktion oder Klasse/Methode durchgeführt werden.

// Definition
validate|customfunction|label|[!]function/class::method|weitere_parameter|warning_message

email

Überprüft, ob die Feldeingabe eine E-Mail-Adresse ist. Ein leere Eingabe würde dabei als korrekt bewertet werden! Es empfiehlt sich also eine zusätzliche Validiierung mit empty.

// Definition
validate|email|emaillabel|warning_message

// Im YForm-Formbuilder
text|email|E-Mail|
validate|email|email|Das Feld enthält keine korrekte E-Mail-Adresse!

II In PHP
$yform->setValueField('text', array("email","E-Mail"));
$yform->setValidateField('email', array("email", "Das Feld enthält keine korrekte E-Mail-Adresse!"));

empty

Überprüft, ob im Feld ein Wert eingetragen wurde und gibt ein Meldung aus.

// Definition
validate|empty|label|Meldung

// Im YForm-Formbuilder
text|name|Nachname|
validate|empty|name|Bitte geben Sie einen Namen an!

// In PHP

$yform->setValueField('text', array("name","Nachname"));
$yform->setValidateField('empty', array("name","Bitte geben Sie einen Namen an!"));

existintable (wird nicht mehr fortgeführt)

Überprüft, ob ein Feld in einer Tabelle existiert.

// Definition
validate|existintable|label,label2|tablename|feldname,feldname2|warning_message

intfromto

Überprüft ob der Wert der Eingabe größer oder kleiner als die definierten Werte sind.

// Definition
validate|intfromto|label|from|to|warning_message

// Im YForm-Formbuilder
text|wert|Wert
validate|intfromto|wert|2|4|Der Wert ist kleiner als 2 und größer als 4! 

// In PHP
$yform->setValueField('text', array("wert","Wert"));
$yform->setValidateField('intfromto', array("wert","2", "4", "Der Wert ist kleiner als 2 und größer als 4! "));

labelexist

Überprüft mit einem Minimal- und Maximalwert, ob eine bestimmte Menge an Feldern ausgefüllt wurden.

// Definition
validate|labelexist|label,label2,label3|[minlabels]|[maximallabels]|Fehlermeldung

// Im YForm-Formbuilder
text|vorname|Vorname|
text|name|Nachname|
text|email|E-Mail|
text|tel|Telefon|

validate|labelexist|vorname,name,tel|1|2|Fehlermeldung

In PHP	$yform->setValueField('text', array("vorname","Vorname"));
$yform->setValueField('text', array("name","Nachname"));
$yform->setValueField('text', array("email","E-Mail"));
$yform->setValueField('text', array("tel","Telefon"));

$yform->setValidateField('labelexist', array("vorname, name, tel", "1", "2", "Fehlermeldung"));

// Hier in diesem Beispiel müssen von den drei Feldern mindestens 1 und maximal 2 ausgefüllt werden

Hinweis:

  • minlabels ist optional und hat den Defaultwert 1.
  • maximallabels ist optional und den Defaultwert 1000.

preg_match

Überprüft die Eingabe auf die hinterlegten Regex-Regeln.

// Definition
validate|preg_match|label|/[a-z]/i|warning_message

// Im YForm-Formbuilder
text|eingabe|Eingabe
validate|preg_match|eingabe|/[a-z]+/|Es dürfen nur ein oder mehrere klein geschriebene 	Buchstaben eingegeben werden!

// In PHP
$yform->setValueField('text', array("eingabe","Eingabe"));
$yform->setValidateField('preg_match', array("eingabe","/[a-z]+/", "Es dürfen nur ein oder mehrere klein geschriebene Buchstaben eingegeben werden!"));

size

Überprüft die Eingabe eines Feldes auf genau die angegebene Zeichenlänge.

// Definition
validate|size|plz|[size]|warning_message

// Im YForm-Formbuilder
text|plz|PLZ
validate|size|plz|5|Die Eingabe hat nicht die korrekte Zeichenlänge!

// In PHP
$yform->setValueField('text', array("plz","PLZ"));
$yform->setValidateField('size', array("plz","5", "Die Eingabe hat nicht die korrekte Zeichenlänge!"));

Hinweis: size ist eine Zahl und meint die Zeichenlänge.

size_range

Überprüft die Eingabe eines Feldes auf die angegebene Zeichenlänge, die zwischen dem Minimal- und Maximalwert liegt

// Definition
validate|size_range|label|[minsize]|[maxsize]|Fehlermeldung

// Im YForm-Formbuilder
text|summe|Summe
validate|size_range|summe|3|10|Die Eingabe hat nicht die korrekte Zeichenlänge (mind. 3, max 10 Zeichen)!

// In PHP
$yform->setValueField('text', array("summe","Summe"));
$yform->setValidateField('size_range', array("summe", "3", "10", "Die Eingabe hat nicht die korrekte Zeichenlänge (mind. 3, max 10 Zeichen)!"));

type

Überprüft den Typ der Eingabe.

// Definition
validate|type|label|[int,float,numeric,string,email,url,date,datetime]|Fehlermeldung|[1 = Feld darf auch leer sein]	

// Im YForm-Formbuilder
text|wert|Wert
validate|type|wert|numeric|Die Eingabe ist keine Nummer!

// In PHP
$yform->setValueField('text', array("wert","Wert"));
$yform->setValidateField('type', array("wert", "numeric", "Die Eingabe ist keine Nummer!"));

unique

Überprüft, ob ein Datensatz mit einem bestimmten Feld-Wert bereits in einer Datenbank-Tabelle vorhanden ist.

// Definition
validate|unique|dbfeldname[,dbfeldname2]|Dieser Name existiert schon|[table]

// Im YForm-Formbuilder
text|email|E-Mail|
validate|unique|email|Ein User mit dieser E-Mail-Adresse existiert schon!|rex_user

// In PHP
$yform->setValueField('text', array("email","E-Mail"));
$yform->setValidateField('unique', array("email", "Ein User mit dieser E-Mail-Adresse existiert schon!|rex_user"));

Hinweise:

  • table: Wenn kein Tabellenname angegeben ist, wird der Tabellenname verwendet, der im Formbuilder ausgewählt wurde.
  • dbfeldname: Es können mehrere Feldname überprüft werden (kommagetrennt).