Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Sessioni lato server

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    11

    Sessioni lato server

    Ho visto che ci sono molti post nel forum tuttavia non ho trovato la soluzione.
    Allora gestire le sessioni lato clienti è davvero facile, ma come faccio "gestirle" lato server?
    Come faccio ad esempio a controllare il "contenuto" di una sessione "$_SESSION[nome_sessione]"?
    Per spiegarmi meglio, se x persone di connettono ad una pagina in cui io setto una sessione $_SESSION[x]=nome, posso vedere quanti e quali "nomi" sono stati salvati?
    (Una domanda, le sessioni lato client, se non altrimenti impostato, scadono alla chiusura del browser, quelle lato server?)

  2. #2

    Re: Sessioni lato server

    Originariamente inviato da VanBee
    Ho visto che ci sono molti post nel forum tuttavia non ho trovato la soluzione.
    Allora gestire le sessioni lato clienti è davvero facile, ma come faccio "gestirle" lato server?
    Come faccio ad esempio a controllare il "contenuto" di una sessione "$_SESSION[nome_sessione]"?
    Per spiegarmi meglio, se x persone di connettono ad una pagina in cui io setto una sessione $_SESSION[x]=nome, posso vedere quanti e quali "nomi" sono stati salvati?
    Quando esiste l'esigenza di fare quello che dici tu, normalmente si usa una gestione delle sessioni su database (anziché solo su filesystem)

    Non che non si possa fare di andare a leggere i file di sessione, ma le problematiche (sopratutto quelle relative al garbage collection delle sessioni) sono tali che nessuna persona sana di mente - IMO - va a fare statistiche di sessione su filesystem quando può usare un db.


    (Una domanda, le sessioni lato client, se non altrimenti impostato, scadono alla chiusura del browser, quelle lato server?)

    quelle lato server scadono
    - o quando lo decidi tu nel tuo script chiamando session_destroy() (session_destroy distrugge la sessione ma le variabili di sessione $_SESSION[] saranno ancora disponibili in memoria per tutta la durata dello script)
    E questo è semplice

    -oppure a seconda del valore che è stato impostato in php.ini alla variabile
    session.gc_maxlifetime, che di default vale 1440 secondi (24 minuti)
    E questo è più complicato.

    Vediamo di spiegarlo per passi:

    a)In realtà dopo 1440 secondi (o altro valore impostato) la sessione non viene distrutta, ma viene "considerata distrutta".

    b) Verrà distrutta solo al passaggio del GC (garbage collector) .

    c)Domanda: e quando passa il GC?
    Risposta: random!!!!!
    Quando viene aperta un qualsiasi sessione con session_start() c'è una probabilità dell'x% che venga chiamato il GC
    La buona notizia è che questa percentuale si puà decidere in php.ini

    d) in php.ini ci sono due variabili
    session.gc_probability (default =1)
    session.gc_divisor(default =1000)
    la probabilità che all'aperturà di una sessione venga chiamato il GC è esattamente
    session.gc_probability su session.gc_divisor
    (di default quindi c'è lo 0.1% di possibilità, ovvero una possibilità su 1000)

    benvenuto nell'assurdo mondo delle sessioni!



    BYTEZ

    Cfr.:
    http://php.net/session.gc-maxlifetime
    http://php.net/session.gc-probability
    http://php.net/session.gc-divisor

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.