Kontaktformular mit Datenbankspeicherung

Jeder, der eine Webseite besitzt, möchte dem Besucher eine Kontaktmöglichkeit geben.

In diesem Tutorial wird gezeigt, wie man ein solches Kontaktformular inklusive Datenbankspeicherung erstellt.

Wir erstellen eine Datei mit dem Namen kontaktformular.php und legen auch gleich los.

Wir fangen zunächst mit dem HTML Gerüst an:
Code:
  1.  
  2. <table>
  3.     <tr>
  4.         <td colspan="2">
  5.             Kontaktformular
  6.         </td>
  7.     </tr>
  8.     <tr>
  9.         <td>
  10.             <label for="name">Name:</label>
  11.         </td>
  12.         <td>
  13.             <input type="text" id="name" name="name" value="" />
  14.         </td>
  15.     </tr>
  16.     <tr>
  17.         <td>
  18.             <label for="email">Email:</label>
  19.         </td>
  20.         <td>
  21.             <input type="text" id="email" name="email" value="" />
  22.         </td>
  23.     </tr>
  24.     <tr>
  25.         <td colspan="2">
  26.             <label for="nachricht">Nachricht</label>
  27.         </td>
  28.     </tr>
  29.     <tr>
  30.         <td colspan="2">
  31.             <textarea id="nachricht" name="nachricht"></textarea>
  32.          </td>
  33.     </tr>
  34.     <tr>
  35.         <td colspan="2">
  36.             <input type="submit" name="senden" value="Nachricht versenden" />
  37.         </td>
  38.     </tr>
  39. </table>
  40.  
Nachdem wir das nötige HTML fertig geschrieben haben, sieht das Ganze im Browserfenster schon einmal so aus:



Jetzt benötigen wir noch das <form> Tag um das HTML Gerüst herum, damit wir mit den eingegebenen Daten arbeiten können.
Code:
  1.  
  2. <form action="kontaktformular.php" method="post">
  3. </form>
  4.  
Dieser Code muss um das ganze HTML Gerüst und sieht dann so aus:
Code:
  1.  
  2. <form action="kontaktformular.php" method="post">
  3. <table>
  4.     <tr>
  5.         <td colspan="2">
  6.             Kontaktformular
  7.         </td>
  8.     </tr>
  9.     <tr>
  10.         <td>
  11.             <label for="name">Name:</label>
  12.         </td>
  13.         <td>
  14.             <input type="text" id="name" name="name" value="" />
  15.         </td>
  16.     </tr>
  17.     <tr>
  18.         <td>
  19.             <label for="email">Email:</label>
  20.         </td>
  21.         <td>
  22.             <input type="text" id="email" name="email" value="" />
  23.         </td>
  24.     </tr>
  25.     <tr>
  26.         <td colspan="2">
  27.             <label for="nachricht">Nachricht</label>
  28.         </td>
  29.     </tr>
  30.     <tr>
  31.         <td colspan="2">
  32.             <textarea id="nachricht" name="nachricht"></textarea>
  33.          </td>
  34.     </tr>
  35.     <tr>
  36.         <td colspan="2">
  37.             <input type="submit" name="senden" value="Nachricht versenden" />
  38.         </td>
  39.     </tr>
  40. </table>
  41. </form>
  42.  
Jetzt kommt der MySQL mit PHP Teil an der Geschichte.
Wir gehen davon aus, dass eine Datenbank vorhanden und eine Tabelle erstellt wurde.
Beispiel:
Unsere Tabelle besitzt den Namen: Kontaktformular
Unsere Struktur sieht so aus:
id (auto_increment) | name | email | nachricht
Code:
  1.  
  2. <?php
  3. // Wenn der Button "Nachricht versenden" gedrückt wurde...
  4. if(isset($_POST['senden'])) {
  5.     // Unnötige Leerzeichen aus dem String, sowie HTML und PHP Code entfernen
  6.     $name               = trim(strip_tags($_POST['name']));
  7.     // Unnötige Leerzeichen aus dem String, sowie HTML und PHP Code entfernen
  8.     $email              = trim(strip_tags($_POST['email']));
  9.     // Unnötige Leerzeichen aus dem String, sowie HTML und PHP Code entfernen
  10.     $nachricht          = trim(strip_tags($_POST['nachricht']));
  11.  
  12.     // Prüfen ob Name gefüllt ist und die Email der Echtheit entspricht
  13.     if(!empty($name) AND eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",$email)) {
  14.         // Vorsicht!!! Datenbankverbindung wird hier nicht angezeigt
  15.  
  16.         // Daten in Datenbank speichern
  17.         $result = mysql_query("INSERT INTO Kontaktformular (name,email,nachricht) VALUES ('$name','$email','$nachricht')");
  18.     }
  19. }
  20. ?>
  21.  
Nun der komplette Code nochmal als Ansicht:
Code:
  1.  
  2. <?php
  3. if(isset($_POST['senden'])) {
  4.     $name               = trim(strip_tags($_POST['name']));
  5.     $email              = trim(strip_tags($_POST['email']));
  6.     $nachricht          = trim(strip_tags($_POST['nachricht']));
  7.  
  8.     if(!empty($name) AND eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",$email)) {
  9.         $result = mysql_query("INSERT INTO Kontaktformular (name,email,nachricht) VALUES ('$name','$email','$nachricht')");
  10.     }
  11. }
  12. ?>
  13. <form action="kontaktformular.php" method="post">
  14. <table>
  15.     <tr>
  16.         <td colspan="2">
  17.             Kontaktformular
  18.         </td>
  19.     </tr>
  20.     <tr>
  21.         <td>
  22.             <label for="name">Name:</label>
  23.         </td>
  24.         <td>
  25.             <input type="text" id="name" name="name" value="" />
  26.         </td>
  27.     </tr>
  28.     <tr>
  29.         <td>
  30.             <label for="email">Email:</label>
  31.         </td>
  32.         <td>
  33.             <input type="text" id="email" name="email" value="" />
  34.         </td>
  35.     </tr>
  36.     <tr>
  37.         <td colspan="2">
  38.             <label for="nachricht">Nachricht</label>
  39.         </td>
  40.     </tr>
  41.     <tr>
  42.         <td colspan="2">
  43.             <textarea id="nachricht" name="nachricht"></textarea>
  44.          </td>
  45.     </tr>
  46.     <tr>
  47.         <td colspan="2">
  48.             <input type="submit" name="senden" value="Nachricht versenden" />
  49.         </td>
  50.     </tr>
  51. </table>
  52. </form>
  53.  

Viel Spaß beim einbauen und verwenden des Kontaktformulares.

Nützliche Erklärungen zu Funktionen, die in diesem Tutorial angewendet wurden:
isset() Funktion
empty() Funktion
trim() Funktion
strip_tags() Funktion

Bei Fragen oder Anregungen zu dieser Seite, steht dir das Forum zur Verfügung.

Diese Seite wurde 972 mal angesehen.
Bewertung zu dieser Seite:
 
  105 Bewertungen

0 Kommentare zu diesem Thema

Du möchtest einen Kommentar abgeben?
Registriere dich oder melde dich mit deinem tbody-Konto an.