[ ppavlovic @ 24.04.2004. 13:33 ] @
Trabam da pravim jedan e-commerce sajt. Imam jednu dilemu: sta je bolje koristiti session ili cookie based shopping cart ?

Sa cookie se radi brze, zahteva malo javascript-a. Session je jednostavniji i sigurniji. Ja vise zelim da upotrebim cookie, ali me zanima da li ima nekih problema vezanih za sigurnost? Ima li nekih ogranicenja (velicina cookie-ja)?

Znate li neka resenja (delove koda) koje mogu da copy/paste-ujem, iskoristim ?

Hvala.
[ vdambo @ 24.04.2004. 21:00 ] @
Koliko mi se cini, maksimalna velicina kukija je 4 kb (sa jednog sajta) i maksimalno ih mozes imati 20 komata sa tog istog sajta...

Sesije su mama.
[ Jbyn4e @ 26.04.2004. 10:03 ] @
Citat:
vdambo:
maksimalno ih mozes imati 20 komata sa tog istog sajta...

ILi cak i manje, zavisi od browsera. Stariji browseri su znali i negde 12-14 kom da cuvaju.
Citat:

Sesije su mama.

Da, apsolutno se slazem,jer cookie mozes i da menjas "rucno" (u zavisnosti opet od browsera), pa da "laziras" podatke (sad, ako neko gleda, on ce primetiti, ali ako ne - onda ces imati "umanjen" iznos za narucenu robu).
BTW. Sa sesijama je cak i lakse napraviti web shop osim ako nemas neke speficne zahteve. Usto nisi ni ogranicen na ukljucen javascript, ni na kolicinu podataka koje ces da stavis u sesiju, niti brines da li ce neko te podatke da promeni "u medjuvremenu" jer se nalaze na serveru. S druge strane, cookies moze da ti omoguci "duze" pamcenje podataka.
[ broker @ 26.04.2004. 10:17 ] @
Kad pravis neku takvu aplikaciju, treba da imas potpunu kontrolu nad njom. Cookie ti nikad nece obezbediti takvu kontrolu, pocev od toga da korisnik moze da iskljuci kolacice pa do toga da moze da ih menja ili najcesce, promeni racunar sa koga pristupa sajtu, da ne pominjemo vrlo ceste sluacejeve da korsinik ima racunar i kod kuce i na poslu i oba ravnopravno koristi.

ES ti je ocigldan primer. Malo malo pa ces ideti da se neko ko dolazi na ES s posla i od kuce kuka upravo zato sto ES cuva podatke u kolacicu pa nikad ne zna kada je korisnik stvarno bio poslednji put na forumu.
[ NetworkAdmin @ 26.04.2004. 12:29 ] @
cookie koristim samo ako treba da zapamtim korisnikov ID i stavim tamo neki checksum prosto da provjerim jeli jeli podatak autentican kao recimo md5 hesh passworda ili neka slicna kombinacija koja ce osigurati autologin kad se covjek vrati sa istog racunara.

Sesije jesu majka jos ako bas hoces da sacuvas sesiju na duzi period mozes je snimati u bazu pa kad se covjek vrati i uloguje bilo pomocu login forme ili cookie onda mu ponovo iz baze izvuces sesiju pa moze nastaviti gdje je stao... ako je vec sesija expired na serveru. Ovo zadnje sam uradio na zahtjev jednog klijenta koji nije znao ni sta je cookie ni sta sesija nego prosto mi rekao "hocu da kad covjek bilo sa kojeg racunara ponovo dodje moze nastaviti tacno tamo gdje je stao prosli put cak i stranica kao da je tu stavio u favorites pa se vratio". Sasija snimljena u bazu me spasila uopste nije bilo tesko nadograditi jer sam prvu verziju napravio sa sesijom.

[ dukenukem @ 27.04.2004. 14:15 ] @
sesije, iz navedenih razloga.
mala napomena: vodi racuna da sesija moze da "ishlapi" izmedju dva koraka - uvek proveravaj sta se nalazi u njoj (u protivnom ces imati nepredvidjene stvari npr. prazne porudzbine)
[ madamov @ 27.04.2004. 15:18 ] @
Jeste da ne koristim PHP, ali je ovo univerzalna tema u Web programiranju. Zaboravi na cookie, samo sesije. Ja cookie koristim samo za inicijalno prepoznavanje korisnika i eventualni automatski login. Ako korisnik i promeni mašinu, isključi cookies, samo treba da se uloguje i onda koristiš sesije.
[ ppavlovic @ 29.04.2004. 12:11 ] @
Citat:
dukenukem:
mala napomena: vodi racuna da sesija moze da "ishlapi" izmedju dva koraka - uvek proveravaj sta se nalazi u njoj (u protivnom ces imati nepredvidjene stvari npr. prazne porudzbine)


Eh, da... Kad si vec dotakao tu temu... Dok testiram svoje skripte, koristim uglavnom Mozilla/Firefox. I sve radi bez ikakvih problema. Medjutim, kad poteram IE 6, desava se da mi se ponekad izgubi sesija!
Sta da radim? Prvo sam pokusao da PHPSESSID drzim samo u cookie-ju, ali ne pomaze. Onda sam pri redirektovanju poceo da ga prosledjujem u URL, ali opet se negde izgubi. Nije valjda da moram i u formularu da ukljucim hidden fields sa vrednoscu PHPSESSID?!! Jel' imao jos neko slicnih problema?

BTW, ajd' malo na flame-ovanje: IE je bre sav nikakav! Jedino sto je dobar za lenje programere sa onim document.all.xxx nista vise!
[ noviKorisnik @ 29.04.2004. 12:17 ] @
Nema potrebe za flejmovima...

A ako se desi da istekne sesija
Citat:
NetworkAdmin:
Sesije jesu majka jos ako bas hoces da sacuvas sesiju na duzi period mozes je snimati u bazu pa kad se covjek vrati i uloguje bilo pomocu login forme ili cookie onda mu ponovo iz baze izvuces sesiju pa moze nastaviti gdje je stao... ako je vec sesija expired na serveru.

[ ppavlovic @ 29.04.2004. 12:26 ] @
OK, to mi je jasno. Mozda sam samo lose postavio pitanje...

Meni se desi da istekne sesija, tj. regenerise se session_id izmedju dva koraka (onaj fazon kad imas nekoliko formulara jedan za drugim).

Npr:
1. formular:
a) prikazem formular
b) korisnik submituje informacije na isti formular, posle validacije se sa header("Location:...") redirektuje na 2. formular

2. forumarl
a) prikazem formular
b) sumbit, validacija, redirekcija na 3. formular

itd...

Negde u nekom od koraka slucajno se desi da se izgubi sesija, tj. informacija o pohranjenom PHPSESSID u cookie-ju i na narednoj stranici se generise novi session_id.
Opet napomena: u Mozilla sve radi,a li IE nasumice gubi PHPSESSID (nekad i radi, da ne gresim dusu)
[ Jbyn4e @ 29.04.2004. 12:33 ] @
Citat:
ppavlovic:
Opet napomena: u Mozilla sve radi,a li IE nasumice gubi PHPSESSID (nekad i radi, da ne gresim dusu) :-)

Hm, znaci moze da je i neko podesavanje kod IE-a? Npr ono "override automatic cookie handling" ili kako li se vec zove...
[ NetworkAdmin @ 30.04.2004. 11:38 ] @
redirekciju pomocu header (Location:...

svakako radis po GET metodi pa moras u GET parametre staviti i sesiju... isto sa javascript ako radis document.location