====== 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]]