⊗ppPmAuRgtD 434 of 447 menu

Normalizace databáze

Nyní ukládáme stavy našich uživatelů ve stejné tabulce jako samotné uživatele. To je však nesprávné - dostáváme se do nenormalizované tabulky, protože slova 'user' a 'admin' se opakují mnohokrát.

Je nutné provést normalizaci - vyčleníme naše stavy do samostatné tabulky statuses:

id name
1 user
2 admin

A v tabulce users vytvoříme sloupec status_id. Nyní při registraci budeme do sloupce status_id zapisovat id stavu z tabulky statuses:

<?php $query = "INSERT INTO users SET login='$login', password='$password', status_id='1'"; ?>

Nejsložitější změny nastanou při autorizaci: pro získání stavu uživatele bude nutné provést LEFT JOIN:

<?php $login = $_POST['login']; // Získáme uživatele podle přihlašovacího jména a připojíme stav: $query = "SELECT users.*, statuses.name as status FROM users LEFT JOIN statuses ON users.status_id=statuses.id WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $hash = $user['password']; if (password_verify($_POST['password'], $hash)) { $_SESSION['auth'] = true; $_SESSION['status'] = $user['status']; // stav } else { } } else { } ?>

Přepracujte vaši autorizaci a registraci v souladu s popsaným v teorii.

Proveďte změny v činnosti administrace (výpis stavů uživatelů, změny stavů a tak dále).

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout