Vorwort

Diese Anleitung wurde für Schulungszwecke erstellt, weshalb einiges nicht als fertiger Code zur Verfügung steht. Es soll keine Copy-Paste-Übung werden 😅

Sollte etwas unverständlich oder inkorrekt sein, bitte ich um Feedback um es beheben zu können. Nobody is perfect.

Der Login

Das Login Modal in der index.php

Für den Login wurde ein einfaches Bootstrap Modal verwendet. Vergesst auf den Button nicht, der das Modal anzeigt. Innerhalb des Modal Body gibt es eine Form, ebenfalls wieder mit Bootstrap Klassen. Der Login besteht aus dem Feld username und password. Beide Felder sind require, also verpflichtend auszufüllen.

Die action führt zu dem File auth/login.php und übergibt zusätzlich noch den Parameter login mit dem Wert 1

Die Loginlogik in auth/login.php

Prepared Statments: https://www.php-einfach.de/mysql-tutorial/php-prepared-statements/

session_start() erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-Kennung basiert, die mit einer GET- oder POST-Anfrage oder mit einem Cookie übermittelt wurde. “
-> https://www.php.net/manual/de/function.session-start.php (19.05.2020)

„Die require_once entspricht im Wesentlichen der Funktion require. PHP prüft hier allerdings ob die gewünschte Datei bereits eingebunden wurde und wird sie in diesem Fall nicht ein weiteres mal einbinden.“
-> https://www.php.net/manual/de/function.require-once.php

Die auth/auth.php im Ordner auth

In der auth.app wird als allererstes eine Session gestartet und überprüft ob die Session einen Eintrag username hat. Wenn dieser nicht vorhanden ist, wird zurück geleitet auf die index.php

Navigation inklusive Login/Logout und Username genannt inc/loggedNav.inc.php

Prinzipiell ist es eine Standardnavigation von Bootstrap mit dem feinen Unterschied, dass gewissen Punkte nur sichtbar sind, wenn man eingeloggt ist. Hierzu gibt es die Abfrage if(!isset($_SESSION["username"])). Deshalb haben wir vorhin den $username in die Session gespeichert, um leichter zu überprüfen ob jemand eingeloggt ist oder nicht. Dementsprechend wird entweder der Link zum Login oder der Link zum Backend und Logout angezeigt.

Außerdem wird am Anfang der Rootpath generiert. Dafür nehmt ihr aus der URL alles zwischen localhost und index.php. Somit kann dann das Logout File leichter aufgerufen werden.

Die Logoutlogik in auth/logout.php

Der Abmeldevorgang ist kurz und schmerzvoll.
Es wird die Session gestartet und dann zerstört mit einem Redirect zur index.php

Die Registrierung

Die Registrierungslogik in auth/registry.php

Mit PHP kann ein Filter mit entsprechend angegebenen Validator genutzt werden um die Gültigkeit einer Mailadresse zu überprüfen. Es gibt natürlich noch einige weitere Filter:
https://www.php.net/manual/de/filter.filters.validate.php

Das Formular zur auth/registry.php

Das Formular ist wieder ein Standard Bootstrap Formular. Die action verweist auf unser gerade erstelltes File auth/registry.php und übergibt im GET den Parameter register=1 noch mit.