Im Modul M295 haben wir gelernt, wie dynamische Webseiten mit PHP und MySQL entwickelt werden. Der Fokus lag auf der Verarbeitung von Benutzerdaten, Formularen, Datenbanken, Sicherheit und der Entwicklung kompletter Webapplikationen. Während des Moduls arbeiteten wir mit HTML, CSS, PHP und MySQL und lernten Schritt für Schritt, wie professionelle Webseiten aufgebaut werden.
Ein wichtiges Thema waren Kommentare in PHP. Kommentare helfen dabei, den Code verständlicher zu machen und wichtige Informationen zu erklären. Es gibt einzeilige Kommentare mit // oder # sowie mehrzeilige Kommentare mit /* ... */. Kommentare werden verwendet, um Funktionen zu beschreiben, Abläufe zu erklären oder wichtige Stellen im Code zu markieren. Besonders bei größeren Projekten sind Kommentare wichtig, damit man den Code später leichter verstehen kann.
Ein weiteres wichtiges Thema war header("Location"). Mit dieser Funktion kann der Benutzer automatisch auf eine andere Seite weitergeleitet werden. Diese Technik wird oft nach einem erfolgreichen Login oder nach dem Absenden eines Formulars verwendet. Wichtig ist dabei, dass vor header() keine Ausgabe erfolgen darf, da sonst ein Fehler entsteht. Häufig wird zusätzlich exit() verwendet, damit das Skript sofort beendet wird.
Wir lernten außerdem den Umgang mit HTML-Formularen. Formulare ermöglichen Benutzereingaben und werden für Login-Systeme, Suchfunktionen oder Dateneingaben verwendet. Dabei haben wir den Unterschied zwischen GET und POST kennengelernt. Bei GET werden die Daten in der URL angezeigt und eignen sich eher für Suchfunktionen. POST hingegen überträgt die Daten versteckt und wird für sichere Eingaben wie Passwörter oder Registrierungen verwendet. Zusätzlich haben wir das action-Attribut benutzt, um festzulegen, wohin die Formulardaten gesendet werden.
Ein großer Teil des Moduls behandelte Sessions. Sessions ermöglichen es, Benutzerinformationen über mehrere Seiten hinweg zu speichern. Sie werden vor allem bei Login-Systemen verwendet. Mit session_start() wird eine Session gestartet. Danach können Daten in $_SESSION gespeichert werden. Dadurch kann die Webseite erkennen, ob ein Benutzer eingeloggt ist. Mit session_destroy() kann sich der Benutzer wieder abmelden. Sessions sind notwendig, damit geschützte Bereiche wie ein Administrationsbereich funktionieren.
Das Thema Passwort-Sicherheit war ebenfalls sehr wichtig. Wir lernten, dass Passwörter niemals im Klartext gespeichert werden dürfen. Stattdessen werden sie mit password_hash() verschlüsselt gespeichert. Beim Login wird das eingegebene Passwort mit password_verify() überprüft. Dadurch bleiben Benutzerkonten auch dann geschützt, wenn jemand Zugriff auf die Datenbank erhält.
Danach arbeiteten wir intensiv mit MySQL-Datenbanken. Eine Datenbank speichert Informationen wie Benutzer, Bücher oder Kundendaten. Mit PHP kann eine Verbindung zur Datenbank hergestellt werden. Wir lernten das CRUD-Prinzip kennen. CRUD bedeutet Create, Read, Update und Delete. Damit können Daten erstellt, gelesen, bearbeitet und gelöscht werden. Diese Funktionen bilden die Grundlage fast jeder modernen Webapplikation.
Ein besonders wichtiges Sicherheitsthema war SQL-Injection. Dabei versucht ein Angreifer, SQL-Befehle über Formulare einzuschleusen. Unsicherer Code kann dadurch manipuliert werden. Deshalb lernten wir Prepared Statements mit prepare() und bind_param() zu verwenden. Dadurch werden Benutzereingaben sicher verarbeitet und SQL-Injection verhindert. Außerdem lernten wir die verschiedenen Datentypen von bind_param() kennen, zum Beispiel s für Strings oder i für Integer.
Ein weiteres Thema waren Funktionen in PHP. Funktionen helfen dabei, Code übersichtlicher und wiederverwendbar zu machen. Eine Funktion wird mit function erstellt und kann danach beliebig oft aufgerufen werden. Dadurch vermeidet man Wiederholungen und verbessert die Struktur des Programms.
Wir lernten außerdem viele wichtige PHP-Funktionen kennen. Mit strlen() kann die Länge eines Strings bestimmt werden. substr() schneidet Teile eines Strings aus. explode() teilt einen String in mehrere Teile auf. trim() entfernt Leerzeichen. stripslashes() entfernt Backslashes. isset() prüft, ob eine Variable existiert. htmlspecialchars() schützt vor HTML-Injection und XSS-Angriffen. Mit include() können andere Dateien eingebunden werden, wodurch man wiederverwendbare Layouts erstellen kann.
Zusätzlich arbeiteten wir mit $_SERVER["PHP_SELF"]. Diese Variable gibt die aktuell geöffnete Datei zurück. Dadurch können Formulare ihre Daten an dieselbe Seite senden. Das vereinfacht die Verarbeitung von Formularen.
Ein weiteres Thema waren Arrays. Arrays speichern mehrere Werte gleichzeitig. Indexed Arrays verwenden numerische Positionen, während Associative Arrays mit Namen arbeiten. Arrays werden oft verwendet, um Daten aus Datenbanken oder Formularen zu speichern.