📋
M307 - Interaktive Webseiten mit Form
  • Interaktive Webseite mit Formular erstellen
  • Tag 1
    • 01-Interaktive Websites
    • 02-Client-Server-Infrastruktur
    • 03 Einrichtung Entwicklungsumgebung
    • 04 PHP
      • 01 Einführung
      • 02 PHP Konfiguration
      • 03 PHP Übersicht
      • 04 Variablen
      • 05 Script Einbindung
      • 06 Arrays
      • 07 Kontrollstrukturen
      • 08 Interne Funktionen
      • 09 Benutzerdefinierte Funktionen
      • 10 Klassen
      • 11 Best Practices
      • 12 Links
    • 05 Strukturierung
      • Aufbau eines MVC (Schritt für Schritt)
    • 06 PHP Aufgaben
      • 01 Bottles of Beer
      • 02 Einfacher Spamfilter
      • 03 Clowns
      • 04 Pixelgenerator
      • 05 Todo-Liste
      • 06 Login-Funktion
      • 07 Navigation
      • 08 Gemeinsames Template
  • Tag 2
    • 01 Formulare Theorie
      • 01 Informationsgruppierung
      • 02 Design- und Strukturgrundlagen
      • 03 Verarbeiten von Formulardaten
      • 04 Validieren von Formulardaten
    • 02 JavaScript Theorie
      • 01 Einfuehrung
      • 02 JavaScript Übersicht
    • 03 Übungsaufgaben zu JavaScript
      • 01 Schere, Stein, Papier
      • 02 Whack-a-Button
    • 04 JavaScript Validierung
      • 01 Validierung
      • 02 Vor- und Nachteile
      • 03 Aufgabe
  • Tag 3
    • 01 Datenbankanbindung
      • 01 Datenbankanbindung
      • 02 Datenbankverbindung
      • 03 Datenbankabfragen
      • 05 Datenlöschung
      • 04 Datenspeicherung
      • 06 Datenmanipulation
      • 07 Refactoring
    • 02 Testing
    • 03 Security Aufgaben
      • 01 Gruppenarbeit
        • 01 Arbeitsauftrag
        • 02 Cross-Site-Scripting (XSS)
        • 03 SQL-Injections
        • 04 Local File Inclusion
      • 02 Eigenes Formular absichern
      • 03 Karl's Website
    • 04 Applikationssicherheit
Powered by GitBook
On this page
  • Aufgabe: Task speichern (Gemeinsam)
  • Aufgabe: Refactoring (Gemeinsam)

Was this helpful?

Export as PDF
  1. Tag 3
  2. 01 Datenbankanbindung

04 Datenspeicherung

Um Daten in die Datenbank über ein Formular zu speichern, können wir wiederum die instanzierte Datenbankverbindung (PDO) nutzen.

Aus Gründen der Sicherheit führen wir die Abfrage nie direkt aus, sondern bereiten diese zuerst mit der prepare-Methode vor.

Im Prepare-Statement werden die effektiven Werte noch nicht eingetragen, sondern Platzhalter an deren Stelle positioniert.

$statement = $pdo->prepare('INSERT INTO `users` (name, role) VALUES (:name, :role)');

Erst in einem zweiten Schritt werden mit der bindParam-Methode Werte für die Platzhalter definiert.

$statement->bindParam(':name', 'Silvana');
$statement->bindParam(':role', 'admin');

Anschliessend kann das fertige Statement nur noch durch die execute-Methode ausgeführt werden, damit die Daten in die Datenbank geschrieben werden.

$statement->execute();

Aufgabe: Task speichern (Gemeinsam)

Als nächstes wollen wir eine neue Task erfassen und in die Datenbank speichern. Erstelle dazu ein Formular mit dem Feld title in deiner Task-View.

Erstelle die neue Controller-Methode TaskController@create und schaue via Routes-Eintrag, dass dieser bei der URL /create aufgerufen wird. Die Daten aus deinem Formular sollen per POST übergeben werden und als Ziel die /create URL haben.

Erstelle nun in deinem neuen Controller eine Überprüfung, ob Daten per POST gesendet wurden. Sofern Daten vorhanden sind, soll eine Datenbankverbindung hergestellt und die Daten per Prepare-Statement in die Datenbank gespeichert werden.

Nach der erfolgreichen Speicherung der Daten, soll der Benutzer wieder zurück auf die Task-Liste gelangen.

Aufgabe: Refactoring (Gemeinsam)

Unsere kleine Applikation erfüllt zwar ihren Zweck, verstösst jedoch gegen das DRY-Prinzip. So wird die Datenbankverbindung mehrfach im Code aufgeführt. Da es sich um den identischen Code handelt, macht es Sinn, diesen an eine zentrale Funktion auszulagern.

Previous05 DatenlöschungNext06 Datenmanipulation

Last updated 3 years ago

Was this helpful?