Webbserverprogrammering 1

Källkod

Följande filer och mappar finns under mappen webbserverprogrammering.
Mappar visas till vänster och filer till höger. Klicka på en fil eller mapp för att öppna nedan eller visa dess innehåll.

webbserverprogrammering/projects/quiz-extended/

26 filer

admin.php
confirm_account.php
create_account.php
create_quiz.php
css/
dbconnection.php
highscore.php
index.php
js/
logbook.php
login.php
mysql_create_table_options.php
mysql_create_table_questions.php
mysql_create_table_quizzes.php
mysql_create_table_results.php
mysql_create_table_submits.php
mysql_create_table_users.php
plan.php
planering.txt
profile.php
projektrapport.txt
quizzes.php
resources/
result.php
send_email.php
session_variable_array_check.php

projektrapport.txt

7 lines UTF-8 Windows (CRLF)
Jag har förbättrat inloggningssystemet på det sättet att när man nu ska skapa ett nytt konto skickas ett mejl med en länk till den givna mejladressen. Länken använder en unik, slumpmässigt genererad "token" för att identifiera användaren. Detta är alltså inte användar-ID:et. Länk gäller i 15 minuter och man behöver använda länken för att bekräfta kontot inom dessa 15 minuter.

När ett nytt konto skapas genereras en 70 tecken lång slumpmässig alfanumerisk sträng (en token) såhär: bin2hex(random_bytes(35)). Token:en ska vara unik så det sker en check mot databasen (tabellen med användarna, quizext_users) och ifall det behövs genereras det en ny sträng, osv. Token:en läggs in med den nya användaren i tabellen, tillsammans med användarens information, inklusive tidsstämpel för registreringen. Till en början är detta konto alltså overifierat (värdet för verified är satt till "unverified"). Ett mejl skickas till den nya användarens mejladress med en länk innehållandes token:en som en GET-parameter. Länken går till sidan confirm_account.php på webbplatsen där token-värdet tas emot och kollas upp så att det gäller för ett overifierat konto. Om det är så kollas tidsstämpeln för registreringen mot den nuvarande tiden och om det inte har gått mer än 15 minuter verifieras kontot (verified sätts till "verified").

Om det blir något fel här (mer än 15 minuter sedan registrering, kontot redan verifierat, matchar inget konto, saknas GET-parameter) visas det felet till användaren.

Vid inloggning behöver kontot vara verifierat för att inloggning ska tillåtas.