diff --git a/php/cl_contactform_output.php b/php/cl_contactform_output.php
index 6d32e5e..8f8c7b0 100644
--- a/php/cl_contactform_output.php
+++ b/php/cl_contactform_output.php
@@ -41,16 +41,17 @@ class w3form {
$this->generateEmailMessage();
$oMailer = new PHPMailer();
+ $oMailer->CharSet = "UTF-8";
$oMailer->AddAddress($this->email['adresses']);
$oMailer->From = $this->email['from']['email'];
$oMailer->FromName = $this->email['from']['name'];
$oMailer->Subject = $this->email['subject'];
$oMailer->Body = $this->email['message'];
-
- if($oMailer->send()) {
+
+ if ($oMailer->send()) {
return true;
}
-
+
return false;
}
@@ -271,10 +272,10 @@ class w3form {
}
private function success() {
- if($this->sendEmail()) {
+ if ($this->sendEmail()) {
echo $this->form['answer'];
} else {
- echo ''.mi18n("Es ist ein Fehler aufgetreten!
Bitte versuchen Sie es später noch einmal.").'';
+ echo '' . mi18n("Es ist ein Fehler aufgetreten!
Bitte versuchen Sie es später noch einmal.") . '';
}
}
@@ -283,7 +284,11 @@ class w3form {
$tmp_name = rtrim($field['name'], '[0]');
preg_match('/\[(\d*)\]/', $field['name'], $matches);
$bEmptyPost = false;
+ $bIsPostArray = false;
+ $sPostFieldValue = $_POST[$tmp_name];
if (is_array($_POST[$tmp_name])) {
+ $bIsPostArray == true;
+ $sPostFieldValue = $_POST[$tmp_name][$matches[1]];
if (empty($_POST[$tmp_name][$matches[1]])) {
$bEmptyPost = true;
}
@@ -295,38 +300,69 @@ class w3form {
return false;
}
- // wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben
+ // wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurückgeben
if ($bEmptyPost) {
return true;
}
// regular expression prüfungen
- if (!empty($feld['valid']) && $feld['valid'] == 'textmitumbruch' && !preg_match("/^[ \n\r.,;!?()öäüéàèâêîça-z0-9-]*$", $_POST["{$field['name']}"]))
- return false;
- if (!empty($field['valid']) && $field['valid'] == 'simpletext' && !preg_match("/^[öäüéàèâêîça-z-]*$/i", $_POST["{$field['name']}"]))
- return false;
- if (!empty($field['valid']) && $field['valid'] == 'text' && !preg_match("/^[ .,;!?()öäüéàèâêîça-z-]*$/i", $_POST["{$field['name']}"]))
- return false;
- if (!empty($field['valid']) && $field['valid'] == 'integer' && !preg_match("/^[0-9]*$/", $_POST["{$field['name']}"]))
- return false;
- if (!empty($field['valid']) && $field['valid'] == 'float' && !preg_match("/^[0-9]*[.]{0,1}[0-9]*$/", $_POST["{$field['name']}"]))
- return false;
- if (!empty($field['valid']) && $field['valid'] == 'date' && !preg_match("/^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$/", $_POST["{$field['name']}"]))
- return false;
- if (!empty($field['valid']) && $field['valid'] == 'email' && !preg_match("/^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$/i", $_POST["{$field['name']}"]))
- return false;
- // grössenbereich bei integer und float prüfen
- if (!empty($field['minvalue']) && $_POST["{$field['name']}"] < $field['minvalue'])
- return false;
- if (!empty($field['maxvalue']) && $_POST["{$field['name']}"] > $field['maxvalue'])
- return false;
-
- // längenbereich bei allen typen prüfen
- if (!empty($field['minlength']) && strlen($_POST["{$field['name']}"]) < $field['minlength'])
- return false;
- if (!empty($field['maxlength']) && strlen($_POST["{$field['name']}"]) > $field['maxlength'])
- return false;
+ if (!empty($field['valid'])) {
+ switch ($field['valid']) {
+ case 'textmitumbruch':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^[\n\r,;:\. ÄÖÜäöüß\-\+\*§$%&\/()=?!\"'\w\d]*$/")))) {
+ return false;
+ }
+ break;
+ case 'simpletext':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^[\w]*$/i")))) {
+ return false;
+ }
+ break;
+ case 'text':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^[(\d)? ?\w]*$/")))) {
+ return false;
+ }
+ break;
+ case 'phone':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^(\(?([\d \-\)\–\+\/\(]+){6,}\)?([ .\-–\/]?)([\d]+))$/")))) {
+ return false;
+ }
+ break;
+ case 'integer':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^\d*$/")))) {
+ return false;
+ }
+ break;
+ case 'float':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^[+-]?([0-9]*[.])?[0-9]+$/")))) {
+ return false;
+ }
+ break;
+ case 'date':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2,4}$/")))) {
+ return false;
+ }
+ break;
+ case 'email':
+ if (!filter_var($sPostFieldValue, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$/")))) {
+ return false;
+ }
+ break;
+ }
+ }
+
+ // grössenbereich bei integer und float prüfen
+ if (!empty($field['minvalue']) && $sPostFieldValue < $field['minvalue'])
+ return false;
+ if (!empty($field['maxvalue']) && $sPostFieldValue > $field['maxvalue'])
+ return false;
+ // längenbereich bei allen typen prüfen
+ if (!empty($field['minlength']) && strlen($sPostFieldValue) < $field['minlength'])
+ return false;
+ if (!empty($field['maxlength']) && strlen($sPostFieldValue) > $field['maxlength'])
+ return false;
+
return true;
}
@@ -335,6 +371,7 @@ class w3form {
$this->formOutput();
} elseif ($this->formComplete()) {
$this->success();
+ //$this->formOutput(true);
} else {
$this->formOutput(true);
}