PHP:
if($GLOBALS['FELD']['vorname']['mandatory_field'] = "yes")
PHP:
$GLOBALS['FELD']['vorname'] = array('mandatory_field' => true,
...
PHP:
if($GLOBALS['FELD']['vorname']['mandatory_field']) {
...
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
if($GLOBALS['FELD']['vorname']['mandatory_field'] = "yes")
$GLOBALS['FELD']['vorname'] = array('mandatory_field' => true,
...
if($GLOBALS['FELD']['vorname']['mandatory_field']) {
...
Habe nun das Array erweitert:
Letztes TO-DO:
Die Funktion checkVorname() variabel gestalten, also check$field(), so dass diese Funktionen sich selbst erstellen und ausführen.
<?php
//Beispielaufruf
//$_POST simulieren (Im gebrauch mit einem Formular wieder löschen!)
$_POST = array(
'vorname' => 'yaslaw',
'nachname' => 'Hallo Welt und überhaubt');
//Definition erstellen
$check = new Checker('vorname');
$check->addDef(Checker::C_MANDATORY_FIELD, true);
$check->addDef(Checker::C_MIN_LENGTH, 3);
$check->addDef(Checker::C_MAX_LENGTH, 15);
$check->addDef(Checker::C_REGEXP, "/^[a-zA-Z]+$/s", 'Dieses Feld darf nur Buchstaben beinhalten');
$checks['vorname'] = $check;
$check = new Checker('nachname');
$check->addDef(Checker::C_MANDATORY_FIELD, true);
$check->addDef(Checker::C_MIN_LENGTH, 3);
$check->addDef(Checker::C_MAX_LENGTH, 20);
$check->addDef(Checker::C_REGEXP, "/^[a-zA-Z]+$/s", 'Dieses Feld darf nur Buchstaben beinhalten');
$checks['nachname'] = $check;
//Eingabe prüfen
$valid = true;
$htmlMessages = array();
foreach($checks as $name => $check){
$valid = $check->check($_POST[$name]) ? $valid : false;
$htmlMessages[] = $check->getHtmlMessage();
}
//Resultat ausgeben
echo(implode('<hr />', $htmlMessages));
/**
* @copyright mpl by ERB software
* All rights reserved
* @author stefan.erb@erb-software.com
*/
Class Checker{
/**
* Konstanten um den Check-Type zu definieren
*/
const C_MANDATORY_FIELD = 'mandatory';
const C_MIN_LENGTH = 'min';
const C_MAX_LENGTH = 'max';
const C_REGEXP = 'regexp';
protected $messages = array();
protected $checks = array();
protected $fieldName;
protected $htmlMessage;
/**
* Konstrukteur
* @param $fieldName String Feldname
*/
public function __construct($fieldName){
$this->fieldName = $fieldName;
}
/**
* Definition hinzufügen
* @param $type String Eine der Klassenkonstanten elche dei Check-Typen definieren
* @param $arg Variant Argument zur Prüfung
* @param $msg String Optional: Fehlermessage
*/
public function addDef($type, $arg, $msg = NULL){
$this->checks[] = array(
'type' => $type,
'arg' => $arg,
'msg' => $msg);
}
/**
* führt die Prüfung eines Wertes durch
* @param $value Variant Zu prüfenden Wert
* @return Boolean
*/
public function check($value){
$this->messages = array();
$valid = true;
foreach($this->checks as $check){
$checkFunction = $check['type'];
$valid = $this->$checkFunction($check['arg'], $value, $check['msg']) ? $valid : false;
}
if($valid){
$this->htmlMessage = "Feld {$this->fieldName} mit dem Inhalt '{$value}' ist gültig";
}else{
$this->htmlMessage = "Feld {$this->fieldName} mit dem Inhalt '{$value}' ist ungültig:<br />";
$this->htmlMessage .= implode('<br />', $this->messages);
}
return $valid;
}
/**
* Gibt die HTML-Message der Prüfung aus
* @return String
*/
public function getHtmlMessage(){
return $this->htmlMessage;
}
/**
* Interne Funktion um ggf die Message in den Array zu schreiben
* @param $invalid Boolean Angabe ob die Prüfung fehlgeschlagen ist
* @param $message String
* @return Boolean Der Valid-Wert.
*/
protected function setFail($invalid, $message){
if($invalid) $this->messages[] = $message;
return !$invalid;
}
/**
* Prüfung auf Mandatory
* @param $arg Boolean Angabe ob ein Wert enthalten sein muss
* @param $value Variant Prüfwert
* @param $msg String Optional
* @return Boolean
*/
protected function mandatory($arg, $value, $msg = NULL){
if (!isset($msg)) $msg = 'Dieses Feld ist ein Plichtfeld';
return $this->setFail($arg && empty($value), $msg);
}
/**
* Prüfung auf Minimum
* @param $arg Integer Minimum
* @param $value Variant Prüfwert
* @param $msg String Optional
* @return Boolean
*/
protected function min($arg, $value, $msg = NULL){
if (!isset($msg)) $msg = "Dieses Feld muss mindestens {$arg} Zeichen beinhalten";
return $this->setFail(strlen($value) < $arg, $msg);
}
/**
* Prüfen auf Maximum
* @param $arg Integer Maximum
* @param $value Variant Prüfwert
* @param $msg String Optional
* @return Boolean
*/
protected function max($arg, $value, $msg = NULL){
if (!isset($msg)) $msg = "Dieses Feld darf maximal {$arg} Zeichen beinhalten";
return $this->setFail(strlen($value) > $arg, $msg);
}
/**
* Prüfen mittels Regulärem Ausdruck
* @param $arg String Pattern
* @param $value Variant Prüfwert
* @param $msg String Optional
* @return Boolean
*/
protected function regexp($arg, $value, $msg = NULL){
if (!isset($msg)) $msg = "Dieses Feld muss dem Regulären Ausdruck {$arg} entsprechen";
return $this->setFail(preg_match($arg, $value)==0, $msg);
}
}
?>
<?php if($valid=false) { echo $htmlMessages["vorname"];} ?>
protected $htmlMessage;
public $valid = false;
public function check($value){
$this->messages = array();
$this->valid = true;
foreach($this->checks as $check){
$checkFunction = $check['type'];
$this->valid = $this->$checkFunction($check['arg'], $value, $check['msg']) ? $this->valid : false;
}
if($this->valid){
$this->htmlMessage = "Feld {$this->fieldName} mit dem Inhalt '{$value}' ist gültig";
}else{
$this->htmlMessage = "Feld {$this->fieldName} mit dem Inhalt '{$value}' ist ungültig:<br />";
$this->htmlMessage .= implode('<br />', $this->messages);
}
return $this->valid;
}
if($checks['vorname']->valid){
//TODO: irgendwas sinnvolles
}
<?php if(!$checks['vorname']->valid){
//Resultat ausgeben
print_r($htmlMessages[0]);
};
?>
if(!$checks->valid)
if (isset($_POST['submit']))
{ SCRIPT } else { FORMULAR };
//$valid ist nur true, wenn alle Felder korrekt ausgefüllt wurden
$valid = true;
foreach($checkfields as $index => $field){
$checkanweisung = "check$field";
$valid = check($field, $checkanweisung, $htmlMessage) ? $valid : false;
$htmlMessages[$index] = $htmlMessage;
}
$htmlMessages[$field] = $htmlMessage;
Warning: Invalid argument supplied for foreach() in
foreach($checkfields as $index => $field){
$htmlMessages[$index] = $htmlMessage;
foreach($checks as $name => $check){
$valid = $check->check($_POST[$name]) ? $valid : false;
$htmlMessages = $check->getHtmlMessage();
}
$htmlMessages[$index] = $htmlMessage;
foreach($checks as $name => $check){
$valid = $check->check($_POST[$name]) ? $valid : false;
$htmlMessages = $check->getHtmlMessage();
}
$htmlMessages[$field] = $htmlMessage;
foreach($checks as $name => $check){
$valid = $check->check($_POST[$name]) ? $valid : false;
$htmlMessages = $check->getHtmlMessage();
}
$htmlMessages[] = $check->getHtmlMessage();
$htmlMessages[$field] = $check->getHtmlMessage();
$htmlMessages[$name] = $check->getHtmlMessage();
Array ( [] => [vorname] => Feld vorname mit dem Inhalt '' ist ungültig:
Dieses Feld ist ein Plichtfeld
Dieses Feld muss mindestens 3 Zeichen beinhalten
Dieses Feld darf nur Buchstaben beinhalten [nachname] => Feld nachname mit dem Inhalt '' ist ungültig:
Dieses Feld ist ein Plichtfeld
Dieses Feld muss mindestens 3 Zeichen beinhalten
Dieses Feld darf nur Buchstaben beinhalten )
$htmlMessages[$index] = $htmlMessage;
$valid = true;
$htmlMessages = array();
foreach($checks as $name => $check){
$valid = $check->check($_POST[$name]) ? $valid : false;
$htmlMessages[$name] = $check->getHtmlMessage();
}