Limitare accesso ad alcune pagine web PHP

Discussione in 'PHP' iniziata da Asterix92, 19 Giugno 2019.

  1. Asterix92

    Asterix92 Nuovo Utente

    Registrato:
    19 Giugno 2019
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    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 :)
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.551
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    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.
     
  3. Asterix92

    Asterix92 Nuovo Utente

    Registrato:
    19 Giugno 2019
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    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 :)
     
Sto caricando...

Condividi questa Pagina