Ejemplo n.º 1
0
                } else {
                    if (!\DimitriVranken\MySQL_to_webform\UserInterface\HttpParameterValidator::hasValue($username)) {
                        outputMissingInformationErrorMessage('Username');
                    } else {
                        $isUserInputValid = true;
                    }
                }
            }
        }
    }
    if (!$isUserInputValid) {
        return;
    }
    // Validate database connection
    $isDatabaseConnectionValid = false;
    $mySqlDatabaseReader = new \DimitriVranken\MySQL_to_webform\Data\MySqlDatabaseReader($server, $database, $username, $password);
    if (!$mySqlDatabaseReader->canConnect()) {
        outputInvalidDatabaseConnectionParameterErrorMessage('Connection to db can not be established');
    } else {
        if (!$mySqlDatabaseReader->doesTableExist($table)) {
            outputInvalidDatabaseConnectionParameterErrorMessage('Table can not be found');
        } else {
            $isDatabaseConnectionValid = true;
        }
    }
    if (!$isDatabaseConnectionValid) {
        return;
    }
    $startInputFormGeneration = true;
}
// Methods
 /**
  * Generiert eine HTML Eingabeform aus den Feldern der angegebenen MySQL Datenbanktabelle.
  * @param string $name Der Name des Formulares.
  * @param string $server Der Hostname oder die IP-Adresse des MySQL-Servers.
  * @param string $database Der Name der Datenbank, die die angegebene Tabelle enthält.
  * @param string $table Die Datenbanktabelle, für die das Eingabeformular generiert werden soll.
  * @param string $username Der Benutzername für den Zugriff auf die angegebene Datenbanktabelle.
  * @param string $password Das Password für den Zugriff auf die angegebene Datenbanktabelle.
  * @return string Das Eingabeformular.
  */
 public static function generateInputForm($name, $server, $database, $table, $username, $password)
 {
     $debug = false;
     if (\DimitriVranken\MySQL_to_webform\BusinessLogic\ConfigurationReader::getDebugMode()) {
         $debug = true;
     }
     $mySqlDatabaseReader = new \DimitriVranken\MySQL_to_webform\Data\MySqlDatabaseReader($server, $database, $username, $password);
     if ($mySqlDatabaseReader->canConnect()) {
         // Die Verbindung zur angegebenen Datenbank kann hergestellt werden
         // Datenbankfelder auslesen
         $databaseFields = $mySqlDatabaseReader->getFields($table);
         // Ausgelesene Datenbankfelder ausgeben
         if ($debug) {
             echo '<h3>Database fields</h3>';
             echo '<table cellpadding="5">
                         <tr>
                             <th>Name</th>
                             <th>Type</th>
                             <th>Max. Length</th>
                             <th>Flags</th>
                         </tr>';
             foreach ($databaseFields as $databaseField) {
                 echo '<tr>';
                 echo '<td>' . $databaseField->name . '</td>';
                 echo '<td>' . $databaseField->type . '</td>';
                 echo '<td>' . $databaseField->maximumLength . '</td>';
                 echo '<td>' . implode('/ ', $databaseField->flags) . '</td>';
                 echo '</tr>';
             }
             echo '</table>';
         }
         // ------------------------------------------------------------------------------------------------------------------------
         // Eingabeelemente aus ausgelesenen Datenbankfeldern generieren
         $inputElements = \DimitriVranken\MySQL_to_webform\BusinessLogic\MySqlDatabaseInputElementBuilder::buildInputElements($databaseFields);
         // Generierte Eingabeelemente ausgeben
         if ($debug) {
             echo '<h3>Input elements</h3>';
             echo '<table cellpadding="5">
                         <tr>
                             <th>Name</th>
                             <th>Required</th>
                             <th>Type</th>
                             <th>Max. Length</th>
                             <th>Options</th>
                         </tr>';
             foreach ($inputElements as $inputElement) {
                 echo '<tr>';
                 echo '<td>' . $inputElement->name . '</td>';
                 echo '<td>' . $inputElement->required . '</td>';
                 echo '<td>' . $inputElement->type . '</td>';
                 echo '<td>' . $inputElement->maximumLength . '</td>';
                 if (isset($inputElement->options)) {
                     '<td>' . implode(', ', $inputElement->options) . '</td>';
                 } else {
                     echo '<td></td>';
                 }
                 echo '</tr>';
             }
             echo '</table>';
         }
         // ------------------------------------------------------------------------------------------------------------------------
         // HTML-Elemente aus generierten Eingabeelementen generieren
         $htmlElements = self::generateHtmlElements($inputElements);
         // ------------------------------------------------------------------------------------------------------------------------
         // Beginn des Formulares generieren
         $inputForm = HtmlTagGenerator::generateFormStart('index.php', 'post');
         $inputForm .= '<table cellpadding="5">';
         // HTML-Elemente in Tabellenzeilen ausgeben
         for ($inputFormIndex = 0; $inputFormIndex < sizeof($htmlElements); $inputFormIndex++) {
             $currentInputElement = $inputElements[$inputFormIndex];
             $currentHtmlElement = $htmlElements[$inputFormIndex];
             $inputForm .= '<tr>
                                      <td valign="top">';
             // Passendes Label anfügen
             if ($currentInputElement->type == InputElementTypes::radiobuttons) {
                 $inputForm .= HtmlTagGenerator::generateLabel($currentInputElement->name . ':');
             } else {
                 $inputForm .= HtmlTagGenerator::generateLabelFor($currentInputElement->name . ':', $currentInputElement->name);
             }
             // HTML-Element anfügen
             $inputForm .= '    </td>
                                      <td valign="top">' . $currentHtmlElement . '</td>
                                  </tr>';
         }
         $inputForm .= '</table>
                              <br/>';
         // Endes des Formulares generieren
         $inputForm .= HtmlTagGenerator::generateSubmit('Abschicken');
         $inputForm .= '</form>';
         return $inputForm;
     } else {
         echo 'Connection failed<br />';
     }
 }