P02 Stegen


Projektplan

Målet med projektet var att skapa en webbaserad applikation för tävlingsformen Stegen, där flera spelare kan logga in, skapa stegar och spela matcher mot varandra. Projektet delades upp i flera steg: först design av databasen, sedan inloggning och användarhantering, därefter funktioner för stegar och matcher, och till sist testning och felsökning. Utvecklingen skedde lokalt med PHP och MySQL via MAMP.

ER-diagram

ER-diagrammet visar relationerna mellan tabellerna Players, Ladder, LadderPlayers och Matches. En spelare kan delta i flera stegar, och varje stege kan innehålla flera spelare. Matcher är kopplade till en specifik stege och till de spelare som deltog i matchen. Diagrammet användes som grund för databasschemat.

Databasmodell

Databasen består av flera tabeller som tillsammans hanterar applikationens data. Tabellen Players lagrar användarkonton, Ladder lagrar information om stegar, LadderPlayers kopplar spelare till stegar och sparar deras poäng, och Matches lagrar matchhistorik samt poäng före och efter varje match. Databasen är normaliserad för att undvika duplicerad data.

Skydd mot SQL-injection

Applikationen skyddas mot SQL-injection genom att använda prepared statements med PDO i PHP. Inga SQL-frågor byggs med användarinmatning direkt i strängen. Alla variabler skickas som parametrar, vilket gör att skadlig SQL-kod inte kan exekveras av databasen.

Lagring av lösenord

Lösenord lagras inte i klartext i databasen. Vid registrering hash-as lösenorden med PHP-funktionen password_hash(). Vid inloggning verifieras lösenordet med password_verify(). Detta gör att även om databasen skulle läckas kan lösenorden inte läsas direkt.

Länk till applikationen

Applikationen körs lokalt via MAMP (PHP och MySQL). Källkoden och databasen lämnas in via C Source.


Leave a Reply

Your email address will not be published. Required fields are marked *