====== Malreihentrainer ======
* Datenbank MySQL
* Tabelle Benutzerdaten
* userid
* Vorname
* Nachname (ev. freiwillig um beim produktiven Betrieb die Akzeptanz zu erhöhen.)
* Passwort
* Email = Benutzername
* Geburtsdatum
* Tabelle Bestenliste
* userid
* Jahrgang
* Datum des Versuchs
* Bestzeit
* Benutzer meldet sich an bzw. registriert sich.
* eventuell:
* Benutzer soll Profil (Passwort, etc.) ändern können,
* Benutzer soll sich und seine sämtlichen Daten löschen können.
* Passwort-vergessen-Link
* Bei Registrierung, Link auf Impressum/Datenschutzerklärung od. ähnl.
* [[http://www.alles-internet.com/blog/muster-impressum-disclaimer-haftungsausschluss-und-copyrightvermerk-fur-weblogs/|Impressum/Datenschutzerklärung]]
* Registrierung nur möglich, wenn "Gelesen-Hakerl" gesetzt.
* Malreihen (z.B 10 Rechnungen vom kleinen 1x1)
* beim Starten läuft Stoppuhr (entweder im Hintergrund oder mitlaufend (Bonus))
* beim Beenden Zeit gemessen
* Wenn alle Rechnungen richtig
* Speicherung/Aktualisierung der Zeit Namen / Datum in Bestenliste
* aber nur, wenn Zeit besser als vorhandene Bestzeit
* Speicherung nach Jahrgang
* Anfänger: 0-7jährige
* Volksschüler: 7-10jährige
* Unterstufler: 10-14jährige
* Oberstufler: 14-18jährigen
* Erwachsene: 18-65jährige
* Senioren: 65-112jährige
* Bonus: Tagesbestenliste
* Eventuell Übersichtsseite mit Links zu
* Rechnen
* Bestenlisten
* Profil
* etc.
* Ausgabe der Bestenlisten (sortiert nach Jahrgängen, Tagesbestenliste)
* Formatierung mittels CSS (ev. kindgerecht, inkl. Bilder)
===== Weiterführende Infos =====
==== Fokus auf Input-Feld setzen ====
Den Fokus auf ein Input-Feld zu setzen funktioniert nur mittels Javascript:
==== Loginsystem ====
* [[http://www.mywebsolution.de/workshops/2/show_PHP-Loginsystem.html|Loginsystem]]
* Bitte beim Loginsystem sich folgenden Befehl und seine Wirkungsweise aneignen:
* [[http://de2.php.net/mysql_real_escape_string|mysql_real_escape_string]]
* wegen Absicherung einer möglichen [[http://de.wikipedia.org/wiki/SQL-Injection#PHP|SQL-Injection]]
==== Passwortverschlüsselung ====
* [[http://us3.php.net/manual/de/function.crypt.php|crypt()]]
* Salt verwenden, da ohne Salt jedesmal mit einem anderen Salt verschlüsselt wird!
==== Gültigkeit der Emailadresse überprüfen ====
* [[http://www.w3schools.com/php/filter_validate_email.asp|FILTER_VALIDATE_EMAIL]]
==== Bestenliste ====
Wenn nur eine Liste geführt wird, Abfragecode für Gesamtliste:
SELECT `id` , MIN( `time` )
FROM `test`
GROUP BY `id`
WHERE DATE_FORMAT(`time`, '%m-%d-%Y') = DATE_FORMAT(NOW, '%m-%d-%Y')
==== String aufteilen mittels explode ====
* [[http://us3.php.net/manual/de/function.explode.php]]