Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    funzionamento session_destroy()

    Sto testando il mio CMS.
    E' normale che quando faccio il logout dalla sessione utente venga eliminata anche la sessione amministratore ? Premetto che il browser è lo stesso.

  2. #2
    un buon cms deve far differenza tra utente e amministratore e non utilizzare le stesse sessione...

    era solo una premessa...

    cmq usa unset(tuasessione);

    es.

    unset($_SESSION['utente']);

    così elimini solo quella determinata sessione e nn tutte erchè session_destroy() elimina tutte le sessioni del sito corrente


  3. #3
    ma il login crea sessioni differenti,(sessione utente e sessione admin etc...) con diversi livelli di gestione, però volevo sapere se il session_destroy elimina indifferentemente qualunque sessione aperta sullo stesso browser oppure se esiste un modo per eliminare solo una particolare sessione.
    Quindi utilizzando unset($_SESSION.... ottengo i medesimi risultati ?

  4. #4
    session_destroy elimina la sessione avviata da session_start(). Se vengono utilizzati due session_name() (es. uno per l'admin ed uno per l'user), devi avviare le due sessioni e distruggerle entrambe.

    unset($_SESSION ...) NON distrugge la sessione, semplicemente unsetta (elimina) un indice dell'array $_SESSION.

    Comunque sei sicuro che vengano usate due sessioni diverse e non, più semplicemente, due variabili di sessione differenti?

  5. #5
    io uso semplicemente così:

    Codice PHP:
    if ($_SESSION['public_vars']['user']==""){
        
    $_SESSION['public_vars']['user']="guest";
        
    $_SESSION['public_vars']['nome']="guest";
        
    $_SESSION['public_vars']['cognome']="guest";
        
    $_SESSION['public_vars']['id_utente']=0;
        
    $_SESSION['public_vars']['email']="guest";

    in pratica dico se non esiste questa sessione mettimi delle sessioni standard che così nessuno possa vedere...
    Se faccio il login assegno a quelle sessioni i rispettivi valori pescati dal db...

    logicamente se faccio il logout assegno le variabili standard

    cmq tipo l'esempio mio se sn loggato e faccio anche unset($_SESSION['public_vars']) quelle mi elimina tutte le sessioni che sn cn quel nome e anche i rispettivi indici

    nn so se ho reso l'idea

  6. #6
    cioé se io faccio

    session_name("User")
    session_start()


    poi da un'altra finestra sempre del browser faccio

    session_name("Admin")
    session_start()

    Mi ritrovo con 2 sessioni differenti, poi se faccio un session_destroy, questo quale sessione mi andrà ad eliminare, se non posso io specificare quale ?

    Sto vaneggiando ?

  7. #7
    se io loggo come Utente con Firefox e come Admin con Safari, non esistono problemi, i logout sono ben distinti. Il problema invece è quando faccio entrambi i login dallo stesso browser, se faccio logout da una, esco in automatico anche dall' altra. Quindi chiedevo se era un comportamento normale oppure ho qualche bug nel mio codice da correggere/migliorare.

    Ora farò altri tentativi per vedere se è possibile isolare ogni sessione aperta in ciascun TAB di firefox.....

  8. #8
    Che significa "se non posso io specificare quale"?
    La sessione che verrà eliminata sarà quella che hai avviato con session_start() e, eventualmente, "selezionato" con session_name();

  9. #9
    Originariamente inviato da filippo.toso
    Che significa "se non posso io specificare quale"?
    La sessione che verrà eliminata sarà quella che hai avviato con session_start() e, eventualmente, "selezionato" con session_name();
    ok, quindi torniamo al punto iniziale.
    Io ho fatto il login Utente (sessione Utente) in una tab di Firefox ed il login Admin (sessioni Admin) in un'altra tab sempre di firefox. Quando faccio il logout da session Utente che richiama session_destroy in automatico mi distrugge anche l' Admin. Comunque non capiterà mai che l'Admin sia anche l'Utente. Ma volevo conferma che questa cosa fosse normale quando si fanno accessi con lo stesso browser.

    Se non è così, allora mi sfugge qualche passaggio

  10. #10
    IMHO la scelta di utilizzare due sessioni diverse è errata. Se poi hai bisogno di un'altro ruolo (es. moderatore) che fai, crei un'altra sessione ancora?

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.