Ich hab mich jetzt nicht durch die 43 Seiten gearbeitet, aber einfach mal in das Zip reingeschaut, ein paar erste Anmerkungen auf den ersten Blick hin:
- Die SQL-Queries sind offen für SQL-Injections (im Zweifelsfall den Begriff googeln). Man muss entweder mit mysql_real_escape_string/mysql_escape_string oder prepared queries oder irgendeiner anderer Form von Escaping arbeiten. Sonst kann das jedes Script Kiddie "hacken" und die Datenbank leeren.
- Genau so schlimm: Usereingaben einfach so im HTML-Code ausgeben! Sicher wirds mit einem htmlspecialchars() drum rum (z. B. bei den '.$username.' wurde erstellt, sollte besser '.htmlspecialchars($username).' wurde erstellt' sein
- mysql_query und Konsorten sind veraltet, man sollte mysqli_query oder (besser) PDOs verwenden, siehe auch PHP-Dokumentation. Die Funktionen werden in Zukunft entfernt werden - d. h. in neuen PHP-Versionen wird es einfach aufhören zu funktionieren
- meta-tags, insbesondere charset sollte vor dem title-tag stehen
- Muss es unbedingt ISO-8859-1 (und latin1 in der Datenbank) sein? Spricht etwas gegen UTF-8? Wie gesagt, habe mir die 43 Seiten hier nicht durchgelesen. Aber ich mag UTF-8.

- Das hier ist illegal: <input type="submit" value="<<" name="prevWeek" class="switch" - permanent werden unnötigerweise entities encodiert (z. B. ü), aber hier nicht?!? value muss natürlich "<<" lauten (oder einen Text wie "vorherige Woche" verwenden), das gleiche bei dem Button für die nächste Woche
- Ich finde Inline CSS bäh und würde das in eine externe Datei auslagern; das width-attribut von Tabellenspalten ist ja noch mehr Bäh, das kann erst Recht CSS sein
- Wozu um aller Welt wird hier ein leerer String per Concat angefügt: "montag".$a."" - das gleiche täte "montag".$a (genau so mit allen anderen Tagen)
- Verstehe nicht, warum der HTML-Code per PHP ausgegeben wird (z. B. in login.php), ist doch völlig unnötig
- "Ihr Username" und "Ihr Passwort" sollten ggf. mit label-Tags umschlossen sein, damit diese Labels den jeweiligen Formularfeldern zugeordnet werden können
- Mehrere <br>s hintereinander, die keinen semantischen Wert haben, sondern einfach nur Abstand erzeugen sollen, finde ich persönlich furchtbar, wozu gibts denn CSS?
- Die schließenden ?> am Ende der Dateien können jeweils weggelassen werden - ist auch sinnvoll, da ja hier teilweise mit Session Cookies gearbeitet wird. Ein versehentliches Leerzeichen nach dem ?> in config.php könnte zum Beispiel einen Fehler verursachen
- Die Idee von DarkMo header und footer auszulagern ist gut
- Ein paar Kommentare würden helfen. Wenn du den Code fertig stellst und in einem halben Jahr ist ne Änderung fällig musst du dich dann nicht wieder stundenlang einarbeiten
Folgendes ist mir dann aufgefallen, als ichs mal testweise auf meinen Server geschoben. Stell zum Testen bei dir auf jeden Fall ein, dass auch PHP Notices angezeigt werden. Dadurch fällt z. B. auf, dass
- $salt nie gesetzt wird - dadurch ist ein Salting natürlich sinnlos.
- $beschreibung nie gesetzt wird - soll vermutlich $_POST['beschreibung'.$a] sein
- ich würde allgemein empfehlen: Nenn die Formularfelder NICHT beschreibung1, beschreibung2, usw. sondern einfach beschreibung[] - Das macht alles so viel einfacher und übersichtlicher!
Nochwas, was kein Fehler per se ist, aber sehr irritierend: Unter dem Loginformular ist ja ein Button "Registrieren", also nahm ich an, um mich zu registrieren könnte ich meinen Benutzernamen und mein Passwort eingeben und dann jenen Button klicken. Keines Wegs, der Button führt erst zum Registrierungsformular, noch nichtmal mein eingegebener Benutzername wird in jenes übernommen.