Inserimento diversi valori in un cookie

domenica 03 marzo 2013 - 17.39
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Visual Studio Express

86Marco Profilo | Expert

Ciao Ragazzi,
mi sorge una domanda sulla possibilie utilità di un cookie.

Sto creando un piccolo ecommerce e vorrei utilizzare ovviamente i cookie.

So benissimo che un cookie può essere creato e dentro di esso è possibile inserire diversi valori per esempio potrei avere un cookie chiamato "mycookie" con al suo interno la chiave "idarticolo" , la "quantità" e il "prezzo". Questi tre formano i 3 valori del mio cookie.

La domanda che mi sorge è:
Se il mio utente seleziona più articoli, devo creare tanti cookie quanti sono gli articoli che il cliente seleziona per comprare?

Mi dareste una dritta su questo?


alx_81 Profilo | Guru

>Ciao Ragazzi,
ciao

>Sto creando un piccolo ecommerce e vorrei utilizzare ovviamente i cookie.
ovviamente = dipende dove li usi, sono oggetti client, quindi devi capire se ha senso che le info stiano sul client

>La domanda che mi sorge è:
>Se il mio utente seleziona più articoli, devo creare tanti cookie
>quanti sono gli articoli che il cliente seleziona per comprare?
no, e se si tratta di un carrello, per fare in modo che il carrello sia vivo indipendentemente dal browser che usi (o dal computer che usi) puoi anche pensare di usare la session per persistere il carrello, magari serializzato in binario e compresso per non dare memory pressure sul server.


Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

86Marco Profilo | Expert

Ciao Alex e grazie per la risposta.

Volevo utilizzare i cookie poichè desideravo che se un utente selezionasse 3 articoli e poi esce dal sito, una volta rientrato abbia sempre nel carrello gli stessi articoli della sessione precedente.

Tutto questo lo faccio settando il cookie con un nome e dandogli una data di scadenza (1 mese per esempio).

Sbaglio secondo te ad agire in questa maniera?

In più come posso creare un cookie ed avere la possibilità di creare diverse chiavi chiamate "idarticoli" nel quale inserisco di volta in volta l'articolo che l'utente sceglie?

Grazie sempre :)

alx_81 Profilo | Guru

>Ciao Alex e grazie per la risposta.
>Volevo utilizzare i cookie poichè desideravo che se un utente
>selezionasse 3 articoli e poi esce dal sito, una volta rientrato
>abbia sempre nel carrello gli stessi articoli della sessione
>precedente.
>Tutto questo lo faccio settando il cookie con un nome e dandogli
>una data di scadenza (1 mese per esempio).
>Sbaglio secondo te ad agire in questa maniera?
no no, non è che sbagli, è che dipende quello che vuoi. Ti faccio un esempio.. Vista l'espansione del mercato dei tablet, immagina che io popoli un carrello sul tuo sito e poi debba andarmene dal pc di casa.
Quello che penso è "prendo su il tablet così completo poi". Apro il sito col tablet ed il mio carrello è vuoto, perchè il cookie è sull'altro pc..
Scomodo.
Avrei preferito tener salvato i miei dati sul servizio, in modo da poterli ritrovare, per un tempo determinato..
non trovi? Il cookie in questo non ti aiuta..

>In più come posso creare un cookie ed avere la possibilità di
>creare diverse chiavi chiamate "idarticoli" nel quale inserisco
>di volta in volta l'articolo che l'utente sceglie?
cosa intendi? basta mettere nel cookie un'oggetto contenente il tutto.. e se devi aggiungere, getti il cookie e poi aggiungi l'item all'oggetto e poi lo rimetti nel cookie..

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

86Marco Profilo | Expert


>cosa intendi? basta mettere nel cookie un'oggetto contenente
>il tutto.. e se devi aggiungere, getti il cookie e poi aggiungi
>l'item all'oggetto e poi lo rimetti nel cookie..

Alex grazie mille per la pazienza e la celerità della risposta... tuttavia purtroppo non mi è chiaro :(
avrei qualche codice di esempio da postarmi?

Spero di non chiederti troppo
Grazie 1000!!!

86Marco Profilo | Expert

>cosa intendi? basta mettere nel cookie un'oggetto contenente
>il tutto.. e se devi aggiungere, getti il cookie e poi aggiungi
>l'item all'oggetto e poi lo rimetti nel cookie..

Ciao Alex, replicando a quanto sopra intendi che posso inserire per esempio una datatable dentro il cookie? è possibile farlo?
Perchè potrei inserire in una datatable gli articoli e poi inserire dentro il cookie il dt.

Sarebbe errato? :)

Grazie sempre per la pazienza!! :)

alx_81 Profilo | Guru

>Ciao Alex, replicando a quanto sopra intendi che posso inserire
>per esempio una datatable dentro il cookie? è possibile farlo?
>Perchè potrei inserire in una datatable gli articoli e poi inserire
>dentro il cookie il dt.
esatto, intendevo proprio mettere una struttura. Personalmente ritengo migliore mettere un oggetto tuo, tipo un List<> perchè è più leggero di un datatable.
Considera che mettere una struttura troppo grande in un cookie non è consigliato, perchè ha una dimensione massima intorno ai 4k per alcuni browser (http://msdn.microsoft.com/en-us/library/aa289495(v=vs.71).aspx#vbtchaspnetcookies101anchor3).
Per questo continuo a sottolinearti la possibilità di usare la session invece dei cookies.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

86Marco Profilo | Expert

Il mio problema è che non capisco bene come poter lavorare bene con la session.

In altre circostanze mi sono trovato a lavorare in questa modalità:
1) creo la dt e la assegno alla session
2) gestisco inserimenti, aggiornamenti ed eliminazioni di articoli dalla dt
3) quando il cliente è pronto paga .

Nella mia procedura manca l'opportunità di salvare questi dati per poter fare in modo che l'utente al prossimo accesso (se non ha acquistato l'ordine) ritrovi tutti gli articoli che aveva selezionato in precedenza. Questo è il mio "problema" :)

alx_81 Profilo | Guru

>Nella mia procedura manca l'opportunità di salvare questi dati
>per poter fare in modo che l'utente al prossimo accesso (se non
>ha acquistato l'ordine) ritrovi tutti gli articoli che aveva
>selezionato in precedenza. Questo è il mio "problema" :)
e scusa allora come fai a fare il cookie? Se non hai una parte di salvataggio? Session si tratta come un cookie sintatticamente.. dove sta il tuo problema?

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

86Marco Profilo | Expert

Scusami Alex non vorrei dire corbellerie, ma la session una volta che il cliente chiude il browser non viene annullata?
Lavorando con la session mica ho l'opportunità che il cliente se il giorno dopo si riconnette al servizio ritrovi i dati .... o sbaglio?

Non vorrei che stessimo parlando di due cose diverse (per colpa mia naturalmente)

alx_81 Profilo | Guru

>Scusami Alex non vorrei dire corbellerie, ma la session una volta
>che il cliente chiude il browser non viene annullata?
>Lavorando con la session mica ho l'opportunità che il cliente
>se il giorno dopo si riconnette al servizio ritrovi i dati ....
>o sbaglio?
beh dipende dal timeout che imposti: http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.100).aspx
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

86Marco Profilo | Expert

Ok :)

Allora mi metto a lavoro e ti faccio sapere.
Grazi per la pazienza!! :)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5