[ sojic @ 15.01.2003. 23:53 ] @
Radim neki WEB Shop ali ne znam kako da uradim kada neko dodje i pocne da puni korpu, a nije ulogovan, ili jos nema accout, gde da pamtim items? To mislim da je u vezi sa SESSION ID ali to nisam radio do sada. Znaci treba mi kratak kurs, gde, i kako da pamtim korpu? Dali da napravim neku "temp" tabelu pa kada se uloguje da prebacim na njegov account ili kako se radi to sa session id?
Nadam se da sam dovoljno jasan
[ bluesman @ 16.01.2003. 00:15 ] @
imas 2 tabele:
- orders
- order_details

Kada neko doda u korpu prvi proizvod, kreiras order i zapamtis order_id. Priozvod(e) koje je kupio dodas u order_details sa tim order_id.

U session za posetioca zapamtis taj order_id
session_register($order_id);

Order je validan dok mu traje sessija. Ako dodaje jos nesto, samo dodajes u order_details sve sto narucuje ali uvek sa istim order_id.

E kada klikne na ponudjeno "checkout" ili "send order" onda ga pitas za sve ostale podatke, ime, prezime, broj cipela,... kreditnu karticu...

generalno ima vise pristupa, mozes i sa session_id() ali se ispostavilo da je ovako lakse. Posle samo stavis da se svi orderi stariji od recimo 6 sati automatski brisu.
[ -zombie- @ 16.01.2003. 01:15 ] @
ali brisi samo ordere koji nisu procesirani, tj na kojima korisnik nije otisao na "chekout" i/ili nije uneo svoje podatke

(ovo sam naglasio cisto da neko ne bi lose protumacio bluesmana.)

btw, gorane, zasto je ovo bolje nego da se (dok korisnik samo sheta i ubacuje u korpu) ne pamti u $_SESSION? ja nisam radio konkretno kada korisnici nisu primorani da se loguju pre pocetka kupovine, ali sam bash danas savetovao drugara (koji je poceo da radi takav sajt) da koristi $_SESSION metod...

znaci, zasto je cuvanje ordera (pre chekout-a) u bazi bolje od cuvanja u sesiji...
[ bluesman @ 16.01.2003. 01:38 ] @
Kao sto rekoh, moze i preko session, to je stvar "ukusa", ali ti onda nemas uvid u sve te "propale" ordere. Znaci cim je gotova sesija, gubi se trag svim tim orderima. To je bitno iz statistickih i mozda nekih usability razloga. Na osnovu stanja ordera, u administraciji mozes da zakljucis da li je odustao ili se zajebavao i ako je odustao gde i zasto je odustao.

Ne mora niko da se loguje, nikome niti trazis niti dodeljujes username i password, tebe to ne interesuje. On vec dobija svoj username (session_id) ciji je lifetime dok god mu traje sesija. Moze cak i da ode sa sajta pa da se vrati, ali cim zatvori browser - "gotov je!" :-) Tebi nista vise od toga i ne treba. Ako i dodje ponovo (posle bar jednog uspesnog ordera), ti si mu postavio cookie pa ga prijatno iznenadis kada procesira neki order a ti umesto njega popunio sve podatke iz baze, njegovo je samo da klikne na "order now" i da pare. Tako ljudi vole, kada je vec spreman da da pare, napravi mu da ima sto manje muke, da se ne predomisli - kakav username/password... to ne treba.

Ne znam, ako se setim jos necega, reci cu ti. :-)
[ -zombie- @ 16.01.2003. 01:52 ] @
ne, ja sam rekao da nisam radio klasican web shop (cisto web shop) vec je bilo u okviru veceg sajta koji je vec imao korisnike (user/pass) i samo su logovani korisnici uopste mogli da odu na shop (takvi zahtevi)..

(naravno da klasican webshop ne zahteva username/pass)


good point inace to za statistiku, mada ja volim statistiku (putanje korisnika, najcesce kliktane linkove / proizvode, redosled kliktanja...) da vodim u posebnoj tabeli i da imam malo vecu kontrolu nad procesom (sa posebnim rutinama za upis / analizu) a ne da mesam sa ostatkom sajta. (znaci ista skripta dodaje u sesiju proizvod, i belezi statistiku u bazu nevezano da li je order proso ili ne..)

ali sa druge strane, moj drugar o tome (josh ;) ne zna nista, pa je verovatno ipak bolje da radi sa bazom :D


(prosto mi je ponekad zao sto zbog prezauzetosti neke sitnije poslove moram da prepustam drugarima, jer iako na konsultacije sa njima potrosim manje vremena nego sto bi potrosio na razvoj, potrosim isto toliko "mozganja" kao kada bih ja radio posao... ;)
[ darkoPOKLONCIC @ 19.01.2003. 11:54 ] @
a...gdje je 'sigurnosna rupa' u ovom nacinu izrade - sa sessionima? je li to samo kradja sessiona ili ima jos nesto? i je li u tom slucaju session_id kao timestamp + IP + rnd(1000000,9000000) dovoljno sigurno rjesenje?...

inace...ovo sa cookies i necuvanjem podataka pod profilima i login je super ideja!

pozdrav!
[ ventura @ 19.01.2003. 12:44 ] @
Citat:
darkoPOKLONCIC:
a...gdje je 'sigurnosna rupa' u ovom nacinu izrade - sa sessionima? je li to samo kradja sessiona ili ima jos nesto? i je li u tom slucaju session_id kao timestamp + IP + rnd(1000000,9000000) dovoljno sigurno rjesenje?...


Sta ce ti 'sigurnosna rupa'?
Session ID se dodeljuje SVAKOM ko doda barem jedan item u shopping cart, i taj session mu traje dok ne zatvori browser.. Ako dodje sutra, dodeljuje mu se novi Session ID i opet sve isto... Sta se moze desiti ako neko zajebe sistem i uzme tuj Session ID? Pa nista.. Onda ce mu se prikazati sta je taj neko imao u shopping cartu...

Citat:
darkoPOKLONCIC:
inace...ovo sa cookies i necuvanjem podataka pod profilima i login je super ideja!


Topla voda :)
[ -zombie- @ 19.01.2003. 18:20 ] @
Citat:
darkoPOKLONCIC:
a...gdje je 'sigurnosna rupa' u ovom nacinu izrade - sa sessionima? je li to samo kradja sessiona ili ima jos nesto? i je li u tom slucaju session_id kao timestamp + IP + rnd(1000000,9000000) dovoljno sigurno rjesenje?...


kao sto ventura rece, nema neke sigurnosne rupe.

mislim, i u jednom i u drugom slucaju se u sesiji cuvaju bar neki podaci. u prvom je to samo order_id, a u drugom je cela sadrzina "korpe". i u oba slucaja se "otimanjem" sesije moze samo videti sta je u tom trenutku u korpi. nista vise..

(naravno, ovo sve vazi za normalno-sigurno napisan sistem koji ili ne cuva brojeve CC, ili ih nikad ne prikazuje korisniku javno (sta ce mu, on ih vec zna.. ;))
[ darkoPOKLONCIC @ 20.01.2003. 07:28 ] @
a cujte...kad je covjek iskusan sa puno napravljenih takvih stvari kao vi, onda je normalno da je 99% tih stvari 'normalno':)

kad netko kao ja radi to sve prvi puta...onda puse i na hladno, pa pita i neke gluposti, a sve da ne zajebe na gluposti :)


ali u svakom vam slucaju - hvala!

pozdrav!