Esempio n. 1
0
 public function printForm($actScript = null, $formDataArray)
 {
     $this->FormDataObj = $formDataArray;
     //Wenn Daten einzelner Formularfelder nicht vorhanden sind, wird die POST-Variable als leer initialisiert,
     //damit sie in der Formularausgabe als leer dargestellt werden.
     foreach ($formDataArray as $data) {
         if (!isset($_POST[$data['fieldname']])) {
             $_POST[$data['fieldname']] = '';
         }
     }
     //Ausgabe des öffnenden Formular-Divs
     echo '
     <div id="container_eingabeformular">';
     //Überprüfen, ob das Formular abgeschickt wurde
     if (isset($_POST['submit'])) {
         //Die Methode zur Überprüfung des Formular-Tokens wird aufgerufen und der Rückgabewert gespeichert.
         $resultToken = FormProtection::checkToken();
         //Die Daten stammen nicht aus einem Formular der Webseite
         if ($resultToken === 'noToken') {
             echo '<p class="fehler_text">Bitte benutzen Sie nur Formulare dieser Webseite.</p>';
         } else {
             if ($resultToken === false) {
                 echo '<p class="bold">Die Nachricht wurde bereits versandt.</p>';
             } else {
                 //Wenn die Datenvalidierung 'true' zurück gibt, sind die Daten in Ordnung und das Mail wird versandt.
                 if ($this->checkData() === true) {
                     //Wenn der Versand erfolgreich war, wird eine bestätigende Meldung ausgegeben.
                     if ($this->sendData() === true) {
                         echo '<p class="bold">Ihre Nachricht wurde erfolgreich versandt.</p><br />';
                     } else {
                         $this->ErrorStatus = true;
                         $this->ErrorObj[] = 'Ihre Nachricht konnte nicht versandt werden.<br />
                                         Versuchen Sie es später nochmals.</p>';
                     }
                 }
                 //Ausgabe von allfälligen Fehler-Meldungen
                 if ($this->ErrorStatus === true) {
                     $this->printErrors();
                 }
             }
         }
     }
     //Wenn die Daten erfolgreich versandt wurden, wird das Formular leer angezeigt.
     if ($this->ErrorStatus === false) {
         foreach ($formDataArray as $data) {
             $_POST[$data['fieldname']] = '';
         }
     }
     //Token für Formular erstellen
     $token = FormProtection::generateToken();
     //Eigentliche Formular-Ausgabe
     echo '
       <form id="formular" action="' . $actScript . '" accept-charset="utf-8" method="post">
         <table border="0" cellspacing="6">';
     foreach ($formDataArray as $data) {
         echo '
           <tr> 
             <td align="left">' . $data['title'] . '&nbsp;&nbsp;&nbsp;&nbsp;</td>
             <td>';
         if ($data['fieldtype'] == 'textarea') {
             echo '<textarea name="' . $data['fieldname'] . '" cols="' . $data['cols'] . '" rows="' . $data['rows'] . '">' . $_POST[$data['fieldname']] . '</textarea>';
         }
         if ($data['fieldtype'] == 'text') {
             echo '<input name="' . $data['fieldname'] . '" type="' . $data['fieldtype'] . '" size="' . $data['size'] . '" maxlength="50" value="' . $_POST[$data['fieldname']] . '"></td>';
         }
         echo '
           </tr>';
     }
     echo ' 
           <tr>
             <td></td>
             <td><input class="form_submit" type="submit" name="submit" value="senden" /></td>
             <td><input type="hidden" name="token" value="' . $token . '" /></td>
           </tr>
         </table>             
       </form>
     </div>';
 }
Esempio n. 2
0
 public function printForm($actScript = null)
 {
     if (!isset($_POST['email'])) {
         $_POST['email'] = "";
     }
     if (!isset($_POST['text'])) {
         $_POST['text'] = "";
     }
     //Ausgabe des öffnenden Formular-Divs
     echo '
     <div class="strich_k"></div>
     <p class="left">Eine weitere Kontaktmöglichkeit bietet das untenstehende Formular. Für eine eventuelle Rückmeldung tragen Sie Ihre E-Mailadresse ein.</p>
     <div id="container_gastformular">';
     //Überprüfen, ob das Formular abgeschickt wurde
     if (isset($_POST['submit'])) {
         //Die Methode zur Überprüfung des Formular-Tokens wird aufgerufen und der Rückgabewert gespeichert.
         $resultToken = FormProtection::checkToken();
         //Die Daten stammen nicht aus einem Formular der Webseite
         if ($resultToken === 'noToken') {
             echo '<p class="fehler_text">Bitte benutzen Sie nur Formulare dieser Webseite.</p>';
         } else {
             if ($resultToken === false) {
                 echo '<p class="bold">Die Nachricht wurde bereits versandt.</p>';
             } else {
                 //Wenn die Datenvalidierung 'true' zurück gibt, sind die Daten in Ordnung und das Mail wird versandt.
                 if ($this->checkData() === true) {
                     //Wenn der Versand erfolgreich war, wird eine bestätigende Meldung ausgegeben.
                     if ($this->sendData() === true) {
                         echo '<p class="bold">Ihre Nachricht wurde erfolgreich versandt.</p><br />';
                     } else {
                         $this->ErrorStatus = true;
                         $this->ErrorObj[] = 'Ihre Nachricht konnte nicht versandt werden.<br />
                                         Versuchen Sie es später nochmals.</p>';
                     }
                 }
                 //Ausgabe von allfälligen Fehler-Meldungen
                 if ($this->ErrorStatus === true) {
                     $this->printErrors();
                 }
             }
         }
     }
     //Wenn die Daten erfolgreich versandt wurden, wird das Formular leer angezeigt.
     if ($this->ErrorStatus === false) {
         $_POST['email'] = '';
         $_POST['text'] = '';
     }
     //Token für Formular erstellen
     $token = FormProtection::generateToken();
     //Eigentliche Formular-Ausgabe
     echo '
       <form action="' . $actScript . '" accept-charset="utf-8" method="post">
         <p class="form_text">E-Mail: </p>
         <input class="form_width" type="text" name="email" maxlength="150" value="' . $_POST['email'] . '" />
         <p class="form_text">Nachricht: </p>
         <textarea class="form_width" name="text" rows="6">' . $_POST['text'] . '</textarea>
         <input class="form_submit" type="submit" name="submit" value="abschicken" />
         <input type="hidden" name="token" value="' . $token . '" />
       </form>
     </div>';
 }
Esempio n. 3
0
 /**
  * Datenbankoperationen
  * 
  * Hier werden die Datenbankoperationen wie Hinzufügen, Bearbeiten und Löschen von Einträgen geregelt
  * und an die Klasse 'EntryHandler' zur Ausführung weitergeleitet.
  */
 private function purchaseDBOperations()
 {
     //Wenn ein GET-Parameter 'delId' vorhanden ist, wird der Dateneintrag gelöscht.
     if (isset($_GET['delId']) and is_numeric($_GET['delId'])) {
         $GLOBALS['EntryHandler']->deleteEntry();
     }
     //Wenn das Übersichts-Formular gesendet wurde (nur bei Betätigung des Löschbuttons der Fall), werden alle
     //gekennzeichneten Dateneinträge auf einmal gelöscht.
     if (isset($_POST['delete'])) {
         $GLOBALS['EntryHandler']->deleteEntries();
     }
     //Wenn das Formular nicht abgeschickt wurde, wird das POST-Array geleert.
     if (!isset($_POST['submit'])) {
         $_POST = '';
     } else {
         //Im Attribut 'FormSubmitOK' wird das Abschicken des Formulars vermerkt.
         $this->FormSubmitOk = true;
         //Wenn Daten einzelner Formularfelder nicht vorhanden sind, wird die POST-Variable als leer initialisiert,
         //damit sie in der Formularausgabe als leer dargestellt werden.
         foreach ($_POST as $key => $data) {
             if (!isset($data)) {
                 $_POST[$key] = '';
             }
         }
         //Wenn der Button "senden" betätigt wurde, werden die Benutzereingaben in die Datenbank geschrieben.
         if ($_POST['submit'] == 'senden') {
             //Token spezifizieren, um das richtige Formular zu überprüfen.
             if (isset($_POST['token_sitetitle'])) {
                 $tokenSesName = 'token_sitetitle';
                 $this->FormSubmitOk = false;
             }
             if (isset($_POST['token_newentry'])) {
                 $tokenSesName = 'token_newentry';
             }
             //Überprüfen, ob die Daten vom Formular der Seite stammen und noch nicht gesendet wurden. (Reload)
             //Die Methode zur Überprüfung des Formular-Tokens wird aufgerufen und der Rückgabewert gespeichert.
             $resultToken = FormProtection::checkToken($tokenSesName);
             //Die Daten stammen nicht aus einem Formular der Webseite
             if ($resultToken === 'noToken') {
                 $GLOBALS['EntryHandler']->ErrorStr = '<p>Bitte benutzen Sie nur Formulare dieser Webseite.</p>';
                 $GLOBALS['EntryHandler']->ErrorObj = false;
                 $this->FormSubmitOk = false;
                 $this->PostIdObj = false;
                 return false;
             }
             //Die Nachricht wurde bereits versandt (Reload)
             if ($resultToken === false) {
                 $GLOBALS['EntryHandler']->ErrorStr = '<p>Ihre Daten wurden bereits übertragen.</p>';
                 $GLOBALS['EntryHandler']->ErrorObj = false;
                 $this->FormSubmitOk = false;
                 $this->PostIdObj = false;
                 return false;
             }
             $GLOBALS['EntryHandler']->addEntry();
             //Wenn die Datenbankoperation erfolgreich war, wird das Formular "Neuer Eintrag" wieder leer dargestellt.
             if ($this->DB->lastSQLStatus === true) {
                 $this->FormSubmitOk = false;
                 $this->PostIdObj = false;
             }
         }
     }
     //Wenn ein GET-Parameter 'editId' vorhanden ist, wird das Formular mit dem Dateneintrag angezeigt.
     if (isset($_GET['editId']) and is_numeric($_GET['editId'])) {
         $this->FormSubmitOk = true;
         $GLOBALS['EntryHandler']->showEntry();
     }
 }