Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] sklep teoria-użytkownicy, rozróżnienie użytkownika zalogowanego od gościa
grykon
post 17.03.2011, 22:29:18
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.03.2011

Ostrzeżenie: (0%)
-----


Witam,
mam problem bardziej teoretyczny
A mianowicie:
-jeżeli zalogowany użytkownik wrzuca przedmioty do koszyka to wiadomo luz tabela koszyk przypisujemy danemu użytkownikowi daną ilość danych przedmiotów

zastanawiam się jedynie nad użytkownikiem niezalogowanym (gość):
-gość wrzuca przedmioty do koszyka - czy już wtedy wrzucać jego przedmioty do DB a zamiast uid wpisywać sessid (żeby go po czymś rozpoznawać) ? czy może trzymać w sesji? ale sesja wygaśnie i byłoby to niewygodne dla klienta wiem po sobie że lubię wrócić do sklepu i mieć to co miałem w koszyku (ciasteczka)
-gość wrzuca przedmioty do koszyka i wiadomo w którymś momencie chce się zalogować i wtedy:
-jeżeli jako user już ma koszyk to jego poprzedni koszyk usuwam a ten nowy zastępuję?
-jeżeli jako user nie ma koszyka to po prostu do tego gościowego przypisuje ten uid tak? to w takim razie gdzie wrzucić "if-a" ? w momencie logowania? było by to dość niewydajne żeby każdemu kto się loguje sprawdzało najpierw czy miał koszyk czy nie

reszta rzeczy przynajmniej u mnie w głowie jest poukładana ale ta zmiana stanów użytkownika wprowadza trochę zamieszania i zastanawiam się jak to rozwiązać... wiem że wiele sklepów po prostu olewa niezalogowanych użytkowników i koniec sesji to zapomina co miałeś. wiem też że porzucone koszyki w bazie danych zaśmiecają ale można stworzyć procedurę która oczyści DB z porzuconych koszyków (załóżmy gdzie data=dziś-2miesiące i mniej) i będzie cacy
Go to the top of the page
+Quote Post
anka_skakanka
post 17.03.2011, 23:29:45
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


ja mam tak w tabeli kosyzk
id_koszyk id_user id_sesji id_wyb_rab ilosc_wyb_rab data_dodania ( w momencie goscia w id klient=0 )... te dane sa tam w sumie aż ich nie usunę...w momencie gdy sie loguje to mam update koszyka zeby zaktualizowalo id_usera na idklienta where idsesji=(..)... natomiast gdy przychodzi do momentu złożenia zamówienia to dane te przechodzą do tabeli zamówienia a z tabeli koszyk są usuwane...
Ale nie wiem czy to dobre rozwiązanie
Go to the top of the page
+Quote Post
dr_bonzo
post 18.03.2011, 07:28:44
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


> -gość wrzuca przedmioty do koszyka - czy już wtedy wrzucać jego przedmioty do DB

tak, w ciacho ID koszyka. Tylko zabezpiecz sie przed "modyfikacja tego ciacha".

> -jeżeli jako user już ma koszyk to jego poprzedni koszyk usuwam a ten nowy zastępuję?

bez sensu, user straci produkty ktore np. wczoraj sobie znalazl i dodal, polacz koszyki smile.gif

> -jeżeli jako user nie ma koszyka to po prostu do tego gościowego przypisuje ten uid tak?

tak,

> było by to dość niewydajne żeby każdemu kto się loguje sprawdzało najpierw czy miał koszyk czy nie

no chyba zartujesz? user loguje sie raz na powiedzmy godzine, a do wyswietlenia strony glownej sklepu potrzeba i tak z kilkudziesieciu SQLek


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
grykon
post 18.03.2011, 11:40:00
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.03.2011

Ostrzeżenie: (0%)
-----


dzięki za rozwianie wątpliwości

mam w takim razie jeszcze jedno pytanie... jak zabezpieczyć te ciasteczka? bawić się w tokeny? przecież i tak tam nie będę przechowywał wrażliwych danych tylko myślę product_id, qty i może jakiś sess_id czy coś żeby ropoznać potem czyje to ciastko

jeżeli się mylę to mnie popraw

modyfikacja ciastek jest banalna ... co innego zmodyfikować ciastko tak żeby coś robiło... ale i tak nie widzę za bardzo sensu bo co użytkownik z takimi danymi w ciastku może zmienić? ilość produktów? sess_id innego usera przecież i tak nie zgadnie

ciastko tak samo jak informacje w GET powinno zawierać jak najmniej wrażliwych informacji lub te informacje mieć odpowiednio zakodowane (w POST też ale w POST da się więcej ukryć po stronie PHP smile.gif )

Go to the top of the page
+Quote Post
dr_bonzo
post 18.03.2011, 11:50:03
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


W ciastku wpisujesz ID koszyka guesta.

User moze sobie je wyedytowac i przejac czyjsc koszyk.

Chodzi o to zeby tak latwo nie mogl zmienic tego ID koszyka. Np. przez "podanie hasla" do tego koszyka.
Tzn wysylasz 2 ciacha - ID + hash (np. md5). Hash jest budowany z jakichs smieci + tajnego kodu + ID koszyka.

I przy wczytywaniu koszyka z ciacha

1. budujesz ten hash po stronie sklepu i sprawdzasz czy hash dostarczony przez usera w ciachu sie zgadza - a ze hash jest budowany z ID koszyka to kazdy koszyk ma swoj unikalny (w praktyce) hash
2. user zeby przejac czyjs koszyk musi ustawic ID koszyka + wygenerowac ten hash, ale nie jest w stanie tego zrobic gdyz nie zna tajnego kodu
3. Jesli user odesli ci ciacha niezmodyfikowane to wszystko bedzie OK


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
grykon
post 18.03.2011, 11:59:06
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.03.2011

Ostrzeżenie: (0%)
-----


dziękuję w zupełności smile.gif no no no i stosować sobie różne sole nie sole hehe smile.gif użytkownik tego nie zgadnie bardzo ładnie dziękuję Panu smile.gif i nie wiem czy umiem ale jak mi się uda to kliknę że pomógł smile.gif
jak coś to jeszcze będę pisał i wymyślał inne problemy biggrin.gif

a ten manerw z koszykiem to po prostu taki token i jakoś md5 nie ufam może mylnie ale na internecie łatwo znaleźć stronkę która odwraca md5 ... może jednak lepiej sha1? // a przepraszam ta stronka polega tylko na szukaniu tego co ma wpisane w bazie danych i rozwinięciach skrótów czyli na dobrą sprawę nie dekoduje tak bezpośrednio

Ten post edytował grykon 18.03.2011, 12:01:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 03:22