Limitare accesso ad alcune pagine web PHP

Asterix92

Nuovo Utente
19 Giu 2019
3
0
1
Ciao a tutti,
ho letto altre discussioni su temi simili ma nessuna risponde ad un quesito che mi sto ponendo da un po' di tempo.

Partiamo dalla base: ho un sito con pagine PHP ed un sistema di Login funzionante (classico con username e password). Il login si collega ad un DataBase MySQL per verificare se le credenziali sono corrette. Se tutto è ok, ti fa accedere al sito.

Gli utenti aventi accesso al sito sono tanti e si dividono in diversi ruoli. Nel DataBase MySQL per l'appunto ci sono tre colonne: username e password, con all'interno i dati di accesso d'ogni singolo utente, e poi vi è una colonna che si chiama ruoli. All'interno di quest'ultima vi sono i ruoli che possono dividersi per ogni singolo utente in: "admin", "moderatore" e "specialguest".

Il sito è accessibile se e solo se l'utente è loggato. Quindi parliamo d'utenti che hanno già effettuato la fase di login (è importante questo dettaglio). Vorrei che se in una determinata pagina, ci andassero a cliccare gli utenti con ruolo "moderatore" e "specialguest", il codice PHP rimanderebbe gli stessi utenti sulla home page del sito, in quanto quella determinata pagina deve essere accessibile solo a tutti gli utenti (già loggati) ma che corrispondono al ruolo "admin" nel database (nella colonna "ruolo").

E' possibile fare una cosa del genere?


Capisco che è una richiesta un po' singolare, spero d'essermi espresso bene.
Grazie :)
 
la verifica del ruolo nell'accesso ad una pagina é abbastanza normale,
suppongo (perché non hai pubblicato codice) che in ogni pagina venga fatta la verifica che l'utente vi acceda dopo la login,
questo controllo viene fatto, di solito, passando i dovuti parametri con $_SESSION
é quindi sufficiente includere il ruolo tra i parametri passati (se già non avviene) e controllarlo con l'accesso alla pagina.
 
Ciao, stamani mi son messo all'opera.
Si, esatto, i parametri passano con $_SESSION.

Ho aggiunto il controllo di "ruolo" in fase di login.
Nella pagina PHP che vorrei far vedere solo agli admin ho inserito questo codice:

PHP:
<?php
require("config.php");
if(isset ($_SESSION['ruolo']) && $_SESSION['ruolo'] == "moderatore" || $_SESSION['ruolo'] == "specialguest") {
           header("location:HomePage.php");
} ?>

Così facendo, funziona.
Grazie mille per la dritta :)
 

Discussioni simili