Εγγραφή με διαχωρισμό δικαιωμάτων σε PHP
Κατά την προσθήκη δικαιωμάτων χρηστών, πρέπει να κάνουμε
αλλαγές στην εγγραφή μας. Τώρα, κατά την εγγραφή
ενός χρήστη, πρέπει στον INSERT ερώτημα να ορίζουμε
την κατάστασή του.
Συνήθως κατά την αρχική εγγραφή, όλοι οι χρήστες
του site μας λαμβάνουν την χαμηλότερη κατάσταση,
δηλαδή στην περίπτωσή μας 'user':
<?php
$query = "INSERT INTO users
SET login='$login', password='$password', 'status'='user'";
?>
Οι υψηλότερες καταστάσεις συνήθως τις δίνει ο διαχειριστής. Αυτός στο admin panel βλέπει τη λίστα των χρηστών και μπορεί να κάνει οποιονδήποτε, για παράδειγμα, διαχειριστή.
Πώς λοιπόν θα εμφανιστεί ο πρώτος διαχειριστής στο site; Το πιο απλό: να εγγραφεί ένας κανονικός χρήστης και μέσω του PhpMyAdmin να γίνει διαχειριστής.
Πιο πολύπλοκο: κατά την πρώτη εκκίνηση στον hosting να τρέξει η εγκατάσταση του site, να ζητηθεί μέσω μιας φόρμας το login και το password και να εγγραφεί ο ίδιος ο πρώτος χρήστης του site, στον οποίο και θα απονεμηθεί η κατάσταση του διαχειριστή.
Αλλάξτε τον κώδικα εγγραφής έτσι, ώστε όλοι οι προστιθέμενοι
χρήστες να λαμβάνουν την κατάσταση 'user'.
Χειροκίνητα αλλάξτε για κάποιον χρήστη
την κατάστασή του σε 'admin'. Επιβεβαιώστε την ταυτότητά σας
με αυτόν τον χρήστη.
Δημιουργήστε τη σελίδα admin.php, στην οποία
θα έχουν πρόσβαση μόνο χρήστες με
κατάσταση 'admin'.
Εμφανίστε στη σελίδα admin.php τη λίστα
όλων των εγγεγραμμένων χρηστών του
site σας σε μορφή πίνακα. Ας υπάρχουν στον πίνακα
δύο στήλες: login και status.
Τροποποιήστε την προηγούμενη εργασία έτσι, ώστε να εμφανίζεται μια ακόμη στήλη, με έναν σύνδεσμο, μέσω του οποίου ο admin θα μπορεί να διαγράψει οποιονδήποτε χρήστη.
Τροποποιήστε την προηγούμενη εργασία έτσι, ώστε οι γραμμές του πίνακα με τους admins να χρωματίζονται με κόκκινο χρώμα, και οι συνηθισμένοι users - με πράσινο.
Τροποποιήστε την προηγούμενη εργασία έτσι, ώστε να εμφανίζεται μια ακόμη στήλη. Σε αυτή τη στήλη ο admin θα μπορεί να αλλάζει τα δικαιώματα των χρηστών. Κάντε το έτσι, ώστε για όλους τους συνηθισμένους χρήστες να υπάρχει ο σύνδεσμος κάντε τον admin, ενώ για τον admin - ο σύνδεσμος κάντε τον user.
Κάντε το έτσι, ώστε σε όλες τις σελίδες του site, στο header ο εγγεγραμμένος χρήστης να βλέπει το login και την κατάστασή του.
Τροποποιήστε την προηγούμενη εργασία έτσι, ώστε για τους admins στο header του site να εμφανίζεται επίσης ο σύνδεσμος προς το admin panel.