Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Accesso multiutente

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72

    Accesso multiutente

    Ciao a tutti, vorrei capire come realizzare una sessione multiutente con contenuti personalizzati.

    In pratica ho una tabella utenti contenente oltre a campu quali id, nome, cognome, username, ecc ecc anche il campo livello. Questo campo pu� essere valorizzato con i parametri superuser, admin oppure utente semplice.

    Va da se che il superuser vedr� contenuti diversi rispetto all'admin e all'utente semplice. L'admin a sua volta vedr� contenuti diversi rispetto all'utente semplice.

    Ho realizzato un login che indirizza dopo la connessione al database ad una pagina php che chiameremo privata.php la quale provvede a smistare gli utenti loggati in base al loro livello.

    Quindi l'utente con livello superuser verr� indirizzato verso pagina1, l'utente admin verso pagina 2 e l'utente semplice verso pagina 3.

    Fino a qui tutto ok. Ora vorrei che includere uno script che impedisca agli utenti registrati, qualunque sia il loro livello, di accedere alle pagine verso le quali non sono stati indirizzati da privata.php.

    Es: superuser pu� accedere a pagina1, ma non a pagina 2 e a pagina 3.

    Cosi admin accede a pagina 2, ma non a pagina 1 e 3 e utente semplice accede a pagina 3 ma non a pagina 1 e 2.


    Ho provato diversi script trovati in altre discussioni, ma quando eseguo i test o vado in loop, ovvero il sistema mi rimanda in continuazione sino a bloccarmi per troppi reindirizzamenti, oppure riesco solo ad accedere solo ad una pagina, per esempio la 1, con tutti e 3 i livelli.

    Qualche soluzione?

    Ps: vorrei evitare di usare una sola pagina per tutti e tre i livelli, per il fatto che il layout per la pagina 1 abbinata al livello superuser � differente dal layout della pagina 2 abbinata al livello admin che a sua volta � diverso dal layout dell'ultima pagina.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    In una variabile di sessione salvi il livello.

    Poi in uno script mettiamo "pagina.php" fai un include del layout a secondo del valore del livello. Se il livello non è settato allora rimandi alla pagina di login.

    se livello non settato o valore invalido => rimanda a login
    se livello = admin => include pagina_admin
    se livello = superuser => include pagina_superuser
    se livello = utente => include pagina_utente
    Ultima modifica di badaze; 02-09-2016 a 21:24
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    @badaze
    La tua impostazione non protegge le pagine (quelle incluse) dagli accessi diretti.
    Secondo me sarebbe il caso di verificare il livello dell'utente nelle singole pagine e, se necessario, redirigere alla pagina di login.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    @badaze
    La tua impostazione non protegge le pagine (quelle incluse) dagli accessi diretti.
    Secondo me sarebbe il caso di verificare il livello dell'utente nelle singole pagine e, se necessario, redirigere alla pagina di login.
    Se includo qualsiasi file in pagina.php la pagina si chiamerà sempre pagina.php. Seppoi non chiamo le pagine con nomi ovvii come una fa ad accedere direttamente alla parte admin superuser o utente ?
    Immagino che sia possibile di mettere i sorgenti in una cartella "nascosta" che non si puo' richiamare da browser ma accessibile dagli script. No ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Se includo qualsiasi file in pagina.php la pagina si chiamerà sempre pagina.php. Seppoi non chiamo le pagine con nomi ovvii come una fa ad accedere direttamente alla parte admin superuser o utente ?
    Immagino che sia possibile di mettere i sorgenti in una cartella "nascosta" che non si puo' richiamare da browser ma accessibile dagli script. No ?
    Sono d'accordo con il fatto che i nomi delle pagine incluse non sono direttamente recuperabili ma un utente potrebbe venire a conoscenza del nome per vie traverse, inoltre le pagine potrebbero essere indicizzate dai motori di ricerca.
    Secondo me, verificare l'utente direttamente nelle pagine incluse fornisce un livello di sicurezza maggiore con uno sforzo implementativo pressoché identico.

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Comunque deve esserci una sola pagina di login che deve reindirizzare dopo alla pagina giusta. Non puoi mica avere una pagina di login per gli admin, un'altra per i super user, et cætera.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Ci può essere una sola pagina di login che redirige in base al tipo di utente.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    ragazzi, grazie mille per le vostre risposte. alla fine ho adottato questa situazione:



    If ($login['tipo_user'] == 'superuser'){


    Echo 'accedi al sito come <i>SuperUser</i>.<br><br>';
    echo 'Data iscrizione: ' .$row['data_it']. "<br/>";
    echo 'data ultimo accesso: ' .$row1['data_it']. ".<br/><br/>"; }




    If ($login['tipo_user'] == 'delegato'){


    Echo 'accedi al sito come <i>Delegato</i>. <br><br>';
    echo 'Data iscrizione: ' .$row['data_it']. "<br/>";
    echo 'data ultimo accesso: ' .$row1['data_it']. ".<br/><br/>" ; }




    If ($login['tipo_user'] == 'utente'){


    Echo 'accedi al sito come <i>Iscritto</i>. <br><br>';
    echo 'Data iscrizione: ' .$row['data_it']. ".<br/>";
    echo 'Data ultimo accesso: ' .$row1['data_it']. ".<br/><br/>" ; }

    e così via per ogni elemento della pagina! è un lavoraccio, e sebbene avrei voluto evitare di usare una sola pagina per tutti e tre i livelli, così, a quanto pare, devo fare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.