System to zdecydowanie za dużo powiedziane.
- Dlaczego nie używasz autoloadingu i namespaceów?
- W register robisz require config, a w configu require register. Dobrze ze jest once dodane.
- Nazwa Login to dla mnie po prostu login. Na pewno nie kojarzy się z procesem logowania. LoginAction byłoby o wiele lepsze. To samo register.
- Prezentujesz bardzo charakterystyczny styl kodowania. Tzw egipski. Polega on na utworzeniu najwyższej piramidy z ifów. Można te ify kulturalnie napisać pod sobą.
- Co ma login do bazy danych?
- Pisz dokumentację.
- csrf protection brak.
Podsumowując. Fajnie że próbujesz, korzystasz z git (huba przynajmniej). Uwierz mi jednak, że takie mechanizmy już powstały i są bardziej zaawansowane.
To co Ci mogę polecić to złap się za jakiś framework php. Zamiast skupiać się i marnować czas na kolejnym systemie walidacji (który nie będzie bezbłędny) nauczysz się jak naginać gotowe komponenty do swoich potrzeb i tworzyć stabilne oraz fajne aplikacje