Sessioni e Cookie... quali limitazioni?

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
Salve a tutti,
sto costruendo un sito web in cui ogni utente ha un area personale. Sto decidendo di mantenere una serie di dati dell'utente da passare tra le pagine con variabili di sessione. Potrebbero diventare 4 o 5 variabili:
username
password
permessi (una stringa contenente alcuni permessi di accesso a file)
risoluzioneSchermo (per adattare la pagina al browser utente)

Secondo voi si possono verificare problemi quando l'accesso e la registrazione degli utenti diventa un numero alto? Dell'ordine delle migliaia?

Altra domanda: è vero che quando creo delle variabili di sessione automaticamente il php crea un cookie sul client per gestire queste variabili?
grazie a tutti
 
Riguardo al tuo primo dubbio, non ho ben capito che cosa intendi. Di quali tipi di problemi hai paura? Problemi al database, sovraccarico del server?
Per quanto concerne le sessioni invece, sì, PHP crea automaticamente un cookie, che viene distrutto alla chiusura del browser (a meno che non venga specificato diversamente nel php.ini), per memorizzare l'ID di sessione. Altrimenti come farebbe a sapere a quale client è associata una sessione?
 
E se imposto il php.ini in maniera diversa ke succede?
Comunque riguardo l'altra domanda intendo il sovraccarico del server. Se 10mila utenti si collegano... diventa problematico l'utilizzo di tante variabili di sessione?
(Anche se Secondo me , quando sono tantissimi utenti, il problema del sovraccaricamento si pone al di la delle variabili di sessione conservate nel server)

...oppure le variabili sono contenute solo nei cookie?
 
Hai le idee un po' confuse su cosa è una sessione. Praticamente il valore di una sessione viene memorizzato all'interno di un file di testo, al di fuori della directory di accesso di Apache, in modo che un visitatore non possa, in nessun caso, scoprirne il contenuto. Per capire a quale client è associata una sessione, PHP genera un ID univoco di 32 caratteri (quindi praticamente impossibile da "indovinare"!) e lo memorizza in un cookie sul browser dell'utente. In realtà ci sono anche altri modi di memorizzare un ID di sessione (per URL, ad esempio, o per IP), ma quello con i cookie è il più usato.

Esistono due sistemi per fare in modo che una sessione sopravviva anche alla chiusura del browser. Il primo consiste nel modificare il valore session.gc_maxlifetime nel file di configurazione php.ini. Questo metodo, ovviamente, è accessibile solamente a chi ha un server dedicato, in quanto è impossibile, su un host come Netsons o AlterVista, modificare i valori del file php.ini, per questioni di sicurezza.
Con il secondo, invece, si memorizza l'ID di sessione e i dati che contiene nel database, e si salva manualmente il cookie sul client dell'utente, con una scadenza predefinita. Così, all'accesso dell'utente, la sessione può essere ripristinata.
 
Hai le idee un po' confuse su cosa è una sessione. Praticamente il valore di una sessione viene memorizzato all'interno di un file di testo, al di fuori della directory di accesso di Apache, in modo che un visitatore non possa, in nessun caso, scoprirne il contenuto.

Quindi comunque per ogni utente deve essere memorizzato un file..
Che cosa succede se sono migliaia di utenti? Il server si sovraccarica mi sa... e il sovraccarico dipenderà dal numero di variabili di sessione utilizzato oppure no?
 
No, non vedo quale sia il problema. Ci sono server che gestiscono centinaia di migliaia di richieste contemporaneamente senza problemi. Certo, hai bisogno di un hosting dedicato, non tanto per il server, quanto per la banda. Non vanno bene AlterVista o Netsons, ad esempio :D
 
Ok grazie! Era questa la cosa che mi premeva di più visto ke sto decidendo di usare varie variabili di sessione.
Grazie anche per le altre spiegazioni sulle sessioni!!:)
 

Discussioni simili