ich bin hier bemüht das Ganze auf das Wesentliche zu beschränken.
Wenn man sich auf das Wesentliche beschränkt, dann wird das so von den Anwendern kopiert. Und dann fehlen am Ende wesentliche Teile, wie Fehlerbehandlung und Kodierungsaushandlung.
Das ist ein gutes Argument, aber besonders so eine "einfache" geschichte wie eine Login-Routine hat sehr viele Abhängigkeiten. Allein über die sinnvolle Validierung von Formularfeldern oder die Modellierung der Datenbank könnte man Seitenweise schreiben. Ich hatte ursprünglich einige Dinge mehr drin, die ich aber dann wieder rausgestrichen habe, weil das Ganze für einen Einsteiger schon eine ziemlich unübersichtliche Dimension angenommen hat.
Ich hab' mir zum Ziel genommen zumindest etwas Hausverstand vorauszusetzen und möchte bewusst keine Copy&Paste-fähige Lösung bereitstellen.
Ich denke man muss hier davon ausgehen, dass der Leser zumindest weiß, wie ein Affenformular funktioniert oder wie Formularvalidierung funktioniert.
Es sollten auch nicht nur die wiederholt auftretenden MySQL-Routinen sondern auch die Fehlerausgabe in wiederverwendbaren Code gepackt werden. Das macht den Code kürzer und man muss im Fehlerfall nicht an mehreren Stellen korrigieren.
Das hat wie gesagt den Grund, dass man die dinge isoliert verwenden kann - ich hatte ursprünglich auch das Fehlerhandling einer anderen Lösung eingebaut, aber allein das wäre schon wieder einen Artikel für sich wert - das kann man nicht einfach unkommentiert einbauen.
Noch eins: Wenn die Datenbank nciht erreicht werden kann, ist as kein Fehler, den man dem Anwender vorwerfen muss. Es ist nicht sein Verschulden und muss anders abgefangen werden als das was durch seine (fehlerhaften) Eingaben zustande kommt.
Auch das ist mir bewusst - das kommt in der Erklärung noch dazu. Es werden z.B. auch "benutzername existiert nicht" oder "passwort falsch" getrennt betrachtet - das ist auch nicht grade praxistauglich.