⊗ppPmAuRgtD 434 of 447 menu

Normalizacija baze podataka

Trenutno čuvamo statuse naših korisnika u istoj tabeli gde su i sami korisnici. Ovo je, međutim, pogrešno - dobijamo ne normalizovanu tabelu, jer se reči 'user' i 'admin' ponavljaju mnogo puta.

Neophodno je izvršiti normalizaciju - izdvojićemo naše statuse u posebnu tabelu statuses:

id name
1 user
2 admin

A u tabeli users napravićemo kolonu status_id. Sada ćemo prilikom registracije u kolonu status_id upisivati id statusa iz tabele statuses:

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

Najsloženije promene će se dogoditi prilikom autorizacije: da bismo dobili status korisnika, trebaće da izvršimo LEFT JOIN:

<?php $login = $_POST['login']; // Dobijamo korisnika po login-u i join-ujemo status: $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']; // status } else { } } else { } ?>

Preradite vašu autorizaciju i registraciju u skladu sa objašnjenim u teoriji.

Unesite izmene u rad admin panela (prikaz statusa korisnika, promene statusa i tako dalje).

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij