<?php
define("ERROR_INVALID_NAME", "Ungültiger Name");
define("ERROR_INVALID_EMAIL_ADDRESS", "Ungültiges E-Mailformat");
define("ERROR_INVALID_STREET", "Ungültiger Strassenname");
define("ERROR_INVALID_POSTALCODE", "Ungültige Postleitzahl! Bitte nur Zahlen eingeben");
define("ERROR_INVALID_CITY", "Ungültige Stadt");
define("ERROR_INVALID_AMOUNT250", "Ungültige Menge bei 250g");
define("ERROR_INVALID_AMOUNT500", "Ungültige Menge bei 500g");
define("ERROR_INVALID_AMOUNT", "Die Gesamtmenge beträgt 0");
define("ERROR_INVALID_PRICE", "Ungültiger Preis");
define("ERROR_INVALID_DATUM", "Ungültiges Datum");
/**
* Validator fuer die Eingabe des Kunden
*/
class Validator{
public $errorMessages;
/**
* Validiert die Eingabe.
*/
function validateInput($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g){
$this->validate($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g);
return $this->isValid();
}
/**
* Validiert die Confirmation.
*/
function validateConfirmation($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum){
$this->validate($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g);
// Menge gefuellt und numersich
if($preis == ''){
array_push($this->errorMessages, ERROR_INVALID_PREIS);
}
// Menge gefuellt und numersich
if($datum == ''){
array_push($this->errorMessages, ERROR_INVALID_DATUM);
}
return $this->isValid();
}
/**
* Validiert die Bestaetigungsparameter.
*/
function validate($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g){
$this->errorMessages = array();
// Name gefuellt
if($name == ""){
array_push($this->errorMessages, ERROR_INVALID_NAME);
}
// Email Adresse korrekt
if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $email)){
array_push($this->errorMessages, ERROR_INVALID_EMAIL_ADDRESS);
}
// Strasse gefuellt
if($strasse == ""){
array_push($this->errorMessages, ERROR_INVALID_STREET);
}
// PLZ gefuellt und numerisch
if(!ereg("^[0-9-]", $plz)){
array_push($this->errorMessages, ERROR_INVALID_POSTALCODE);
}
// Stadt gefuellt
if($stadt == ""){
array_push($this->errorMessages, ERROR_INVALID_CITY);
}
// Menge250g gefuellt und numersich
if(!ereg("^[0-9-]", $menge250g)){
array_push($this->errorMessages, ERROR_INVALID_AMOUNT250);
}
// Menge500g gefuellt und numersich
if(!ereg("^[0-9-]", $menge500g)){
array_push($this->errorMessages, ERROR_INVALID_AMOUNT500);
}
if ($menge250g == 0.0 and $menge500g == 0.0){
array_push($this->errorMessages, ERROR_INVALID_AMOUNT);
}
return $this->isValid();
}
/**
* Erzeugt eine Message fuer die letzte Validierung,
*/
function getErrorMessages(){
$msg = "<span style='color:red'>Fehler, Sie haben nicht alle Felder korrekt ausgefüllt:";
// Erzeugte Fehlermeldungen einsammeln
foreach ($this->errorMessages as $value) {
$msg .= "<br /> - " . $value;
}
$msg .= "</span><br /><br />";
unset($value);
return $msg;
}
/**
* Ueberprueft, ob Fehler bei der Validierung aufgetreten sind.
*/
function isValid(){
if (count($this->errorMessages) == 0){
return true;
}
return false;
}
}
?>
preferences:
39.73 ms | 402 KiB | 5 Q