Code: Alles auswählen
$formular->addEmailAdress($_POST['kontaktperson']); Code: Alles auswählen
$formular->addEmailAdress($_POST['kundenemail']); gruss,
andreas
Code: Alles auswählen
$formular->addEmailAdress($_POST['kontaktperson']); Code: Alles auswählen
$formular->addEmailAdress($_POST['kundenemail']); Code: Alles auswählen
$formular->addEmailAdress($_POST['kontaktperson']); Code: Alles auswählen
if (!empty($_POST['kontaktperson'])) foreach ($_POST['kontaktperson'] as $kontaktperson) {
	$formular->addEmailAdress($kontaktperson);
}Code: Alles auswählen
Firma: ###name:firma; type:text; valid:text; size:40### 
...
Betreff: ###name:betreff; type:text; valid:text; size:40### das ist innerhalb von hochkomma, respektive anführungszeichen kein problem.MaikS hat geschrieben:Jetzt fehlt nur noch ein Semikolon als Trennzeichen für die Email-Adressen. Kann man dieses auch noch eintragen? Ich frage aus dem Grund, da das Semikolon im PHP-Script als Endzeichen genommen wird.
offengestanden: keine ahnung!MaikS hat geschrieben:Hast du eine Idee, warum die beiden neuen Felder jeweils rot hinterlegt werden, wenn das Formular abgeschickt wird?
Code: Alles auswählen
Firma: ###name:firma; type:text; valid:text; size:40### ... Betreff: ###name:betreff; type:text; valid:text; size:40###
Code: Alles auswählen
<?php 
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     w3concepts.form.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     20-08-2004 
* Modified    :     20-08-2004 
************************************************/ 
class w3form { 
   var $email, $aufgedroeselt, $form, $formularFeld; 
   function w3form() { 
   } 
   // PRIVATE 
   function sendEmail() { 
      $this->aufdroeseln($this->suppress('sent')); 
      $this->generateEmailMessage(); 
      mail($this->email['adresses'],$this->email['subject'],$this->email['message'],"From: {$this->email['from']['name']} <{$this->email['from']['email']}>\nReply-To: {$this->email['from']['email']}\nX-Mailer: PHP/" . phpversion()); 
   } 
   // PRIVATE 
   function aufdroeseln($aufzudroeseln,$prefix = '') { 
      foreach ($aufzudroeseln as $key => $value) { 
         if (is_array($value)) { 
            $this->aufdroeseln($value,$key." "); 
         } else { 
            $this->aufgedroeselt["{$prefix}{$key}"] = $value; 
         } 
      } 
   } 
   // PRIVATE 
   function add2Message($key,$value) { 
      if (strlen($key) > 25 OR strlen($value) > 54) { 
         $this->email['message'] .= "$key\n$value\n"; 
      } else { 
      $this->email['message'] .= $key; 
      $this->email['message'] .= str_repeat(' ',25-strlen($key)); 
      $this->email['message'] .= "$value\n"; 
      } 
   } 
   // PRIVATE 
   function generateEmailMessage() { 
      if ($this->aufgedroeselt) foreach ($this->aufgedroeselt as $key => $value) { 
         $this->add2Message($key,$value); 
      } 
   } 
   // PRIVATE 
   function suppress() { 
      $suppress = func_get_args(); 
      foreach ($_POST as $key => $value) { 
         if (array_search($key,$suppress) == false) $fields[$key] = $value; 
      } 
      return $fields; 
   } 
   // PUBLIC 
   function addEmailAdress($email) { 
      if (empty($this->emailAdresses)) { 
         $this->email['adresses'] .= "$email"; 
      } else { 
         $this->email['adresses'] .= ", $email"; 
      } 
   } 
   // PUBLIC 
   function setEmailSubject($subject) { 
      $this->email['subject'] = $subject; 
   } 
   // PUBLIC 
   function setEmailFrom($email,$name) { 
      $this->email['from']['email'] = $email; 
      $this->email['from']['name'] = $name; 
   } 
   // PUBLIC 
   function setForm($form) { 
      $this->form['form'] = $form; 
   } 
   // PUBLIC 
   function setAnswer($answer) { 
      $this->form['answer'] = $answer; 
   } 
   // PUBLIC 
   function setBackgroundError($color) { 
      $this->form['colorError'] = $color; 
   } 
   // PRIVATE 
   function formularInterpretation(&$formular) { 
      $felder = split('###',$formular); 
      for ($i=1;$i<count($felder);$i=$i+2) { 
         $attributte = split(';',trim($felder[$i])); 
         foreach ($attributte as $attribut) { 
            $namewert = split(':',trim($attribut)); 
            if ($namewert[0] != 'option' && $namewert[0] != 'optionvalue') { 
               $feld["{$felder[$i]}"]["{$namewert[0]}"] = $namewert[1]; 
            } else { 
               $feld["{$felder[$i]}"]["{$namewert[0]}"][] = $namewert[1]; 
            } 
         } 
      } 
      return $feld; 
   } 
   // PRIVATE 
   function formularAusgabe($sent = false) { 
      echo '<form action="" method="POST">'; 
      echo '<input type="hidden" name="sent" value="true" />'; 
      $formular = $this->form['form']; 
      $formulardaten = $this->formularInterpretation(&$formular); 
      $formular = split('###',$formular); 
      foreach ($formular as $formularteil) { 
         if (!empty($formulardaten["{$formularteil}"])) { 
            $this->formularFeld($formulardaten["{$formularteil}"],$sent); 
         } else { 
            echo $formularteil; 
         } 
      } 
      echo '</form>'; 
   } 
   // PRIVATE 
   function formularFeld($attribute,$sent) { 
      $parameter = "name=\"{$attribute['name']}\""; 
      if ($sent && !$this->formularFeldKorrekt(&$attribute)) $style ="style=\"background-color:{$this->form['colorError']};\""; 
      switch ($attribute['type']) { 
         case 'select': 
         case 'password': 
         case 'text': 
            if (!empty($attribute['size'])) $parameter .= " size=\"{$attribute['size']}\""; 
            break; 
      } 
      switch ($attribute['type']) { 
         case 'textarea': 
         case 'text': 
            if (!empty($attribute['size'])) $parameter .= " size=\"{$attribute['size']}\""; 
            if (!empty($attribute['value'])) $value = $attribute['value']; 
            if (!empty($_POST["{$attribute['name']}"])) $value = $_POST["{$attribute['name']}"]; 
            break; 
      } 
      switch ($attribute['type']) { 
         case 'text': 
            echo "<input type=\"text\" $parameter value=\"$value\" $style />"; 
            break; 
         case 'password': 
            echo "<input type=\"password\" $parameter value=\"$value\" $style />"; 
            break; 
         case 'textarea': 
            echo "<textarea name=\"{$attribute['name']}\" cols=\""; 
            echo (empty($attribute['cols']))?('20'):($attribute['cols']); 
            echo "\" rows=\""; 
            echo (empty($attribute['rows']))?('2'):($attribute['rows']); 
            echo "\" wrap=\"virtual\" $style>$value</textarea>"; 
            break; 
         case 'select': 
            echo "<select $parameter $style>"; 
            for ($i=0;$i<count($attribute['option']);$i++) { 
               if (!empty($attribute['optionvalue'][$i])) { 
                  if (!empty($_POST["{$attribute['name']}"]) && $_POST["{$attribute['name']}"] == $attribute['optionvalue'][$i]) { 
                     echo "<option value=\"{$attribute['optionvalue'][$i]}\" selected=\"selected\">{$attribute['option'][$i]}</option>\n"; 
                  } else { 
                     if (empty($_POST["{$attribute['name']}"]) && !empty($attribute['optionvalue'][$i]) && $attribute['optionvalue'][$i] == $attribute['value']) { 
                        echo "<option value=\"{$attribute['optionvalue'][$i]}\" selected=\"selected\">{$attribute['option'][$i]}</option>\n"; 
                     } else { 
                        echo "<option value=\"{$attribute['optionvalue'][$i]}\">{$attribute['option'][$i]}</option>\n"; 
                     } 
                  } 
               } else { 
                  if (!empty($_POST["{$attribute['name']}"]) && $_POST["{$attribute['name']}"] == $attribute['option'][$i]) { 
                     echo "<option selected=\"selected\">{$attribute['option'][$i]}</option>\n"; 
                  } else { 
                     if (empty($_POST["{$attribute['name']}"]) && $attribute['option'][$i] == $attribute['value']) { 
                        echo "<option selected=\"selected\">{$attribute['option'][$i]}</option>\n"; 
                     } else { 
                        echo "<option>{$attribute['option'][$i]}</option>\n"; 
                     } 
                  } 
               } 
            } 
            echo "</select>"; 
            break; 
         case 'checkbox': 
            $formularbezeichner = preg_split('[\[|\]]',$attribute['name']); 
            if ($sent) { 
               if ($_POST["{$formularbezeichner[0]}"]["{$formularbezeichner[1]}"] == $attribute['value']) { 
                  echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>"; 
               } else { 
                  echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\"/>"; 
               } 
            } else { 
               if (!empty($attribute['selected']) && $attribute['selected'] == 'true') { 
                  echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>"; 
               } else { 
                  echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\"/>"; 
               } 
            } 
            break; 
         case 'radio': 
            if (!empty($_POST["{$attribute['name']}"])) { 
               if ($_POST["{$attribute['name']}"] == $attribute['value']) { 
                  echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>"; 
               } else { 
                  echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" />"; 
               } 
            } else { 
               if (!empty($attribute['selected']) && $attribute['selected'] == 'true') { 
                  echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>"; 
               } else { 
                  echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\"/>"; 
               } 
            } 
            break; 
      } 
   } 
   // PRIVATE 
   function formularVollstaendig() { 
      $formular = $this->form['form']; 
      $felder = $this->formularInterpretation(&$formular); 
      foreach ($felder as $feld) { 
         if (!$this->formularFeldKorrekt(&$feld)) return false; 
      } 
      return true; 
   } 
   // PRIVATE 
   function success() { 
      $this->sendEmail(); 
      echo $this->form['answer']; 
   } 
   // PRIVATE 
   function formularFeldKorrekt(&$feld) { 
      // prüfung, ob pflichtfeld vorhanden 
      if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && empty($_POST["{$feld['name']}"])) return false; 
      // wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben 
      if (empty($_POST["{$feld['name']}"])) return true; 
      // regular expression prüfungen 
      if (!empty($feld['valid']) && $feld['valid'] == 'simpletext' && !eregi("^[öäüéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) return false; 
      // if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça0-9-z-]*$",$_POST["{$feld['name']}"])) return false;
      if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) return false;
      if (!empty($feld['valid']) && $feld['valid'] == 'integer' && !eregi("^[0-9]*$",$_POST["{$feld['name']}"])) return false; 
      if (!empty($feld['valid']) && $feld['valid'] == 'float' && !eregi("^[0-9]*[.]{0,1}[0-9]*$",$_POST["{$feld['name']}"])) return false; 
      if (!empty($feld['valid']) && $feld['valid'] == 'date' && !eregi("^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$",$_POST["{$feld['name']}"])) return false; 
      if (!empty($feld['valid']) && $feld['valid'] == 'email' && !eregi("^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$",$_POST["{$feld['name']}"])) return false; 
      if (!empty($feld['valid']) && $feld['valid'] == 'textmitumbruch' && !eregi("^[ \n\r.,;!§$%&/()=?+#-_€öäüéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) return false;
      // grössenbereich bei integer und float prüfen 
      if (!empty($feld['minvalue']) && $_POST["{$feld['name']}"] < $feld['minvalue']) return false; 
      if (!empty($feld['maxvalue']) && $_POST["{$feld['name']}"] > $feld['maxvalue']) return false; 
      // längenbereich bei allen typen prüfen 
      if (!empty($feld['minlength']) && strlen($_POST["{$feld['name']}"]) < $feld['minlength']) return false; 
      if (!empty($feld['maxlength']) && strlen($_POST["{$feld['name']}"]) > $feld['maxlength']) return false; 
      return true; 
   } 
   //PUBLIC 
   function process() { 
      if (!isset($_POST['sent'])) { 
         $this->formularAusgabe(); 
      } elseif ($this->formularVollstaendig()) { 
         $this->success(); 
      } else { 
         $this->formularAusgabe(true); 
      } 
   } 
} 
if ($edit) { 
   echo "<h1>Formularkonfiguration</h1>"; 
   echo "<p>Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:</p>"; 
   echo "CMS_HTML[0]"; 
   echo "<p>Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:</p>"; 
   echo "CMS_HTML[1]"; 
} else { 
   $formular = new w3form(); 
   if (!empty($_POST['kontaktperson'])) foreach ($_POST['kontaktperson'] as $kontaktperson) { 
   $formular->addEmailAdress($kontaktperson . ";"); 
   }
   $formular->setEmailSubject("CMS_VALUE[1]"); 
   $formular->setEmailFrom($_POST['kundenemail'],$_POST['kundenname'].", ".$_POST['kundenvorname']);   $formular->setBackgroundError("CMS_VALUE[4]"); 
   $formular->setForm("CMS_HTML[0]"); 
   $formular->setAnswer("CMS_HTML[1]"); 
   $formular->process(); 
} 
?>Code: Alles auswählen
if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça0-9-z-]*$",$_POST["{$feld['name']}"])) return false;Code: Alles auswählen
if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) return false;Code: Alles auswählen
Vorname / Nachname: 	###name:vorname; type:text; valid:simpletext; size:15; mandatory:true### / ###name:nachname; type:text; valid:simpletext; size:15; mandatory:true###
Land: 	###name:land; type:select; valid:integer; size:1; option:bitte auswählen; optionvalue:0; option:Schweiz; optionvalue:1; option:Deutschland; optionvalue:2; option:Oesterreich; optionvalue:3;value:1;minvalue:1###
Anzahl: 	###name:anzahl;type:text;valid:integer;size:3;value:12; minvalue:5; maxvalue:100###
zweites Land: 	###name:land2; type:select; valid:text; size:1; option:bitte auswählen; option:Schweiz; option:Deutschland; option:Oesterreich; value:Deutschland###
Geschlecht: 	###name:geschlecht;type:radio;valid:text; value:männlich; selected:true### männlich
###name:geschlecht; type:radio; valid:text; value:weiblich### weiblich
###name:geschlecht; type:radio; valid:text; value:geschlechtslos### geschlechtslos
Interessen: 	
###name:interesse[0];type:checkbox; valid:text; value:sport### Sport
###name:interesse[1]; type:checkbox; valid:text; value:unterhaltung### Unterhaltung
###name:interesse[2]; type:checkbox; valid:text; value:geschichte### Geschichte
###name:interesse[3]; type:checkbox; valid:text; value:internet; selected:true### Internet
###name:interesse[4]; type:checkbox; valid:text; value:sonstiges### Sonstiges
Bemerkungen: 	###name:bemerkungen; type:textarea; valid:text; rows:6; cols:30###joh das sieht so aus, als ob das Modul den Ausgabeteil nicht abarbeitetkummer hat geschrieben:ist vielleicht eine dumme frage, aber trotzdem: du hast nicht nur den input-teil des moduls gefüllt, oder? eine solche ausgabe würde es nämlich geben, wenn du den output-teil nicht ausgefüllt hättest.