![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 23.10.2008 Ostrzeżenie: (20%) ![]() ![]() |
Witam,
Mam pytanie o stabilne rozwiązanie dla funkcji koszyka z zakupami bez systemu logowania posiadajacego cechy podręcznego notatnika ID produktu oraz jego ceny (ew. sumy cen). Jakiego rozwiązania najlepiej użyć? Pozdrawiam Damian |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Trzymac id_produktów oraz ich dodatkowe parametry (ilosc, itd) w sesji.
Kod $_SESSION['cart']=array(
array('id_produktu'=>1, 'ilosc'=>'5', 'kolor'=>'zielony','cena'=>100.50) ); Ten post edytował wookieb 17.03.2009, 14:28:34 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
tablica z produktami i ich info , a sklepik na sesjach .
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 23.10.2008 Ostrzeżenie: (20%) ![]() ![]() |
ehh będzie na ciastkach jednak...
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Możesz i bez ciastek, na upartego... Wtedy wystarczy wyłączyć odpowiednią opcję w php.ini.
Ale odradzam, mało bezpieczne. |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat podręcznego notatnika ID produktu oraz jego ceny (ew. sumy cen). + do tego ciastka?Mam nadzieje ze walidujesz zawartosc ciastek przed kupnem 10 komputerow w cenie 1zl? I czemu ciastka - 100x latwiej jest to na sesjach zrobic. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Z alternatywnych rozwiązań:
- tymczasowy plik po stronie serwera - baza Jednak oba te rozwiązania obciążają serwer. Jeśli nie ma przeciwskazań to sesje/ciastka, przecież chodzi tylko o trzymanie tablicy wybranych produktów + ilości, są o wiele gorsze problemy... |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
ciastka to raczej nie rozważne posunięcie .
plikami i db w wypadku gdy nie ma rejestracji i logowania to niepotrzebna praca, trzeba uwzględnić że ktoś może zrezygnować w połowie zamówienia i zostają nam wpisy . Przy małych sklepach najlepsze są sesje i nie ma co kombinować . |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat ciastka to raczej nie rozważne posunięcie - niby czemu? Wszystko jest po stronie użytkownika, szybko i prosto to działa. Jakie może być zagrożenie wynikające z trzymania w ciastkach wybranych produktów? Przecież i tak sprawdzanie i walidacja odbywa się PO wysłaniu zamówienia jako post, a nie przy tworzeniu tych ciastek.
|
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ja w swoim systemie sklepu zapisuję koszyk w sesji jako tablicę:
Kod array( 0 => array( 'id' => 10, 'amount' => 1, 'attributes' => array() ), 1 => array( 'id' => 3, 'amount' => 5, 'attributes' => array( 0 => 7, 1 => 12 ) ) ) Każdy element jest tablicą, która składa się z id produktu, jego ilości oraz tablicy atrybutów (np. kolor, rozmiar). Jeżeli w Twoim sklepie nie ma atrybutów możesz uprościć strukturę do: Kod array( 10 => 1, 3 => 5 ) czyli id => ilość. Na takich wyjściowych strukturach możesz spokojnie budować koszyk. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jeśli jest walidacja przed złożeniem zamówienia to może ujdzie w tłumie, chodziło o sytuację w której dane byłyby zapisane w ciastku a przed złożeniem nie sprawdziłbyś ich poprawności, wówczas ktoś mógłby zmodyfikować ciacho i miałbyś problem.
Nadal jednak nie rozumiem dlaczego upierasz się przy ciastkach ? Mi się wydaje że łatwiej i przyjemniej można to zrobić w oparciu o sesje. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 14:34 |