⊗ppPmAuRgtD 434 of 447 menu

Datenbanknormalisierung

Derzeit speichern wir die Status unserer Benutzer in derselben Tabelle wie die Benutzer selbst. Das ist jedoch nicht richtig - wir erhalten eine nicht normalisierte Tabelle, da die Wörter 'user' und 'admin' viele Male wiederholt werden.

Es ist notwendig, eine Normalisierung durchzuführen - wir werden unsere Status in eine separate Tabelle statuses auslagern:

id name
1 user
2 admin

Und in der Tabelle users erstellen wir eine Spalte status_id. Bei der Registrierung werden wir nun in die Spalte status_id die id des Status aus der Tabelle statuses eintragen:

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

Die größten Änderungen erfolgen bei der Autorisierung: Um den Status des Benutzers zu erhalten, muss ein LEFT JOIN durchgeführt werden:

<?php $login = $_POST['login']; // Benutzer per Login abrufen und Status joinen: $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 { } ?>

Passen Sie Ihre Autorisierung und Registrierung entsprechend der in der Theorie beschriebenen Weise an.

Nehmen Sie die Änderungen in der Funktionsweise des Admin-Bereichs vor (Anzeige der Benutzerstatus, Änderung der Status und so weiter).

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen