Girovagando su questo e altri forum (per non parlare di varie guide, tutorial, articoli...) mi sono fatto una piccola cultura sulla costruzione dei carrelli della spesa con le sessioni, i cookie e MySQL, da soli o combinati tra loro.
Problema incontrato da chiunque necessiti di memorizzare più di un valore (ad esempio categoria, codice, quantità del prodotto)
Quello che non sono ancora riuscito a capireè quale sia effettivamente il metodo migliore , probabilmente perchè ho ancora molti dubbi... vediamo di fare un piccolo sum di pro e contro (per quello che sono riuscito a capire...
)
- le SESSIONI appesantiscono il server se non cancellate correttamente con il gc del php.ini però funzionano sempre perchè lato/server; inoltre è possibile memorizzare array ottenendo così un array di array (la sessione in fondo è impostabile anche come array, giusto?) cosa non fattibile coi cookie...
- i COOKIE risiedono lato client e non appesantiscono il server; per questo stesso motivo però non è possibile avere un controllo completo (ad esempio se non attivati sul browser), se ne possono inviare al max 20 per dominio e possono pesare ax 4 kb; inoltre non potendo memorizzare array si dovrebbe inserire una stringa da processare di volta in volta con explode (ad esempio memorizzare categoria_codice_quantità|categoria_codice_quantit à e poi fare due explode per | e poi per _ ) I cookie però permetterebbero di interagire meglio con clienti non registrati o autenticati e tenerne traccia anche alla chiusura del browser e per molto tempo senza riempire il server dei file di sessione
- MySQL permetterebbe di memorizzare comodamente i dati in un db carrelli contenente tabelle associate ai clienti tramite cookie o sessioni; personalmente avevo pensato di inviare un cookie con l'id del cliente che corrisponderebbe poi al nome della tabella del db carrelli contenente una riga per ogni item nel carrello; tutto ciò richiederebbe però una connessione al db gni volta serva modificare/visualizzare il carrello; inoltre non si correrebbe il rischio, se non cancellando manualmente, di sovraccaricare il db di carrelli inutilizzati?
VVoVe:
Forse la soluzione più semplice sarebbe utilizzare tutti e tre gli strumenti: sessioni per gli utenti non registrati che scadono alla chiusura del browser, cookie e db per gli utenti registrati (in modo da fornire un servizio di memorizzazione del carrello) utilizzando però le sessioni per tenere traccia finchè il cliente è connesso così da non appesantire il db con continue interrogazioni. Ma probabilmente sbaglio tutto![]()
Qualcuno ha risposte a tutti questi dubbi e soluzioni ai miei problemi? grazie ciao
(credo possa interessare a molti, no? scusate se ho scritt una cosa a metà tra una pillola e una niubbata :maLOL: )