⊗ppPmAuRgtD 434 of 447 menu

Κανονικοποίηση Βάσης Δεδομένων

Αυτή τη στιγμή αποθηκεύουμε τις καταστάσεις των χρηστών μας στον ίδιο πίνακα όπου βρίσκονται και οι ίδιοι οι χρήστες. Αυτό, ωστόσο, είναι λάθος - καταλήγουμε με έναν μη κανονικοποιημένο πίνακα, αφού οι λέξεις 'user' και 'admin' επαναλαμβάνονται πολλές φορές.

Είναι απαραίτητο να πραγματοποιήσουμε κανονικοποίηση - θα μεταφέρουμε τις καταστάσεις μας σε έναν ξεχωριστό πίνακα statuses:

id name
1 user
2 admin

Και στον πίνακα users θα δημιουργήσουμε τη στήλη status_id. Τώρα κατά την εγγραφή θα γράφουμε στη στήλη status_id το id της κατάστασης από τον πίνακα statuses:

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

Οι πιο σημαντικές αλλαγές θα συμβούν κατά την εξουσιοδότηση: για να λάβουμε την κατάσταση του χρήστη, θα χρειαστεί να εκτελέσουμε LEFT JOIN:

<?php $login = $_POST['login']; // Λαμβάνουμε τον χρήστη βάσει του login και κάνουμε join την κατάσταση: $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']; // κατάσταση } else { } } else { } ?>

Προσαρμόστε την εξουσιοδότηση και εγγραφή σας σύμφωνα με όσα περιγράφηκαν στη θεωρία.

Εφαρμόστε τις αλλαγές στη λειτουργία της διαχειριστικής σελίδας (προβολή καταστάσεων χρηστών, αλλαγές καταστάσεων και ούτω καθεξής).

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη