Visualizzazione risultati 1 fino 3 di 3

Discussione: Sessione o query?

  1. #1
    Guest

    Predefinito Sessione o query?

    Quando un utente si logga nel mio sito, vengono prelevate delle variabili relative a quell'utente dal database. Alcune di queste variabili devono essere aggiornate periodicamente (aumentano col passare del tempo), quindi in pratica l'utente ogni volta che cambia pagina deve poter accorgersi di questi cambiamenti.

    Posso scegliere due strade: prelevare al login le variabili più il tempo attuale ($time1), salvare tutto in una sessione e incrementare queste variabili a ogni cambio pagina in base alla differenza tra il tempo attuale ($time2) e quello memorizzato precedentemente ($time1). L'aggiornamento di queste variabili nel database invece viene effettuato al login (sempre in base a una data memorizzata nel db stesso).

    L'altra possibilità e quella di alleggerire la sessione ma aumentare il numero di query, effettuando appunto query di select e update a ogni cambio pagina.

    Quale delle due strade è più efficiente in termini di prestazioni del sito? Fino ad ora ho usato la prima soluzione ma ciò che mi fa venire un dubbio è il fatto che nella sessione dovrei memorizzare parecchie variabili (sono arrivato anche a più di 20). Sono alle prime armi col php, e non vorrei che sia una scelta poco efficiente quella di usare parecchie variabili nella sessione. D'altra parte però non vorrei sovraccaricare il db di query, con conseguente rallentamento delle stesse.

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Ti fornisco qui alcuni pro e contro delle tue soluzioni:
    - la soluzione via database è la più sicura, perché i dati in fin dei conti sono scritti su un disco fisso e quindi memorizzati con un maggior controllo. Di contro, come hai anche scritto tu, ad ogni pagina dovrai "sprecare" una query per l'aggiornamento dei dati
    - la soluzione via sessione non ha questo problema, ma devi tenere presente che si tratta di una memoria praticamente "volatile" che, se non viene aggiornata in tempo utile (che su AlterVista è pari a 30 minuti se non ricordo male), o l'utente chiude il browser senza effettuare il logout (su cui vorresti implementare l'aggiornamento definitivo) viene persa. Pertanto devi anche pensare a come "rigenerare" lo script senza perdere i dati e, soprattutto, senza che l'utente abbia a maledirti per il reload improvviso della pagina che gli fa girare la testa... :-D.

    Esistono altre due strade, leggermente più complicate:
    - una consiste nel salvare i dati temporanei via cookie, e non via sessione. I cookie sono memorizzati sul disco fisso del tuo utente e, diversamente dalle sessioni, non hanno scadenza. Non solo: sono anche un po' più robusti dal punto di vista del logout: se il tuo utente non lo effettua - e, va detto, non va di sua iniziativa a cancellare i cookie - puoi sempre recuperare i dati scritti all'apertura della prossima sessione.
    - la seconda invece consiste nell'utilizzare dei file (binari o di testo) sul tuo spazio web per salvare i dati temporanei. Hanno gli stessi vantaggi dei cookie ma, a differenza di questi, sono memorizzati sul tuo sito, sul quale sei l'unica persona ad averne il controllo (in sintesi: l'unico modo che un utente ha di modificare per sbaglio i suoi dati è quello di bucarti il sito...).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da dementialsite
    I cookie sono memorizzati sul disco fisso del tuo utente e, diversamente dalle sessioni, non hanno scadenza.
    Per la precisione la scadenza dei cookie viene decisa dal webmaster.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •