❕ Tato složka obsahuje podklady k domácímu studiu.
👉
Nejprve si vyřešíme domácí úkol a následně se začneme zabývat uživatelskými účty a doplníme je do aplikace nástěnky.
👉
Na cvičení 5. SQL a databáze byl zadán domácí úkol, v rámci kterého jste měli rozšířit funkcionalitu nástěnky vytvářené na daném cvičení. Zadání tohoto domácího úkolu naleznete zde.
Ukážeme si vyřešení tohoto domácího úkolu a následně do aplikace doplníme jednoduché přihlašování uživatelů.
👉
V rámci domácího úkolu bylo požadováno doplnění možnosti editace příspěvků a doplnění možnosti zobrazování příspěvků jen ze zvolené kategorie. Pokud máte u domácího úkolu vlastní řešení, určitě můžete pokračovat i v něm či si jej můžete zkontrolovat.
Nutná příprava:
- stáhněte si zdrojový kód
- nahrajte zdrojový kód aplikace na server eso.vse.cz
- naimportujte SQL export do databáze
📙
Řešení:
👉
Pár základních pravidel pro uživatelské účty:
- pro lokální přihlašování obvykle používáme kombinaci uživatelského jména (či e-mailu) a hesla
- heslo nikdy neukládáme do databáze v čitelné podobě, ale vždy hashovaně
- heslo je pak chráněné i v případě, kdy se nám někdo dostane do databáze
- z hashe nejde získat původní heslo zpátky (tj. při jeho zapomenutí jej aplikace nemůže uživateli sdělit!)
👉
Pro zahashování (zašifrování) hesla budeme používat funkci password_hash
, pro ověření jeho správnosti pak funkci password_verify
. Ve skutečnosti kontrolujeme, jestli se hash hesla zadaného při přihlášení shoduje s hashem hesla uloženým v databázi
Pro registraci i přihlášení uživatele použijeme normální formulář v aplikaci. Přihlášení uživatele si pamatujeme pomocí session.
👉
Dále si do aplikace Nástěnka doplníme možnost jednoduché registrace a přihlášení uživatelů.
Nebudeme řešit oprávnění uživatelů, každý z přihlášených uživatelů bude moct přidávat příspěvky a také všechny příspěvky upravovat.
Řešení přímo navazuje na předchozí příklad vyřešení zadání domácího úkolu. Pokud jste jej z nějakého důvodu neabsolvovali, je potřeba:
- stáhněte si zdrojový kód
- nahrajte zdrojový kód aplikace na server eso.vse.cz
- naimportujte SQL export do databáze
📙
Řešení: