[php] koszyk na mysql i oproznianie - PILNE :}

0

Witam

Napisalem ktorystam z kolei :) silnik sklepu i mam maly problem z koszykiem. Mam juz gotowa klase, dane chowam w bazie i wszystko dziala spoko, tylko jest jeden problem. Mianowicie, macie moze jakis pomysl by go oproznic, gdy user sie rozmysli i jednak niczego nie kupi, po prostu zamknie strone i na nia nie wroci? Boje sie, ze w bazie przez to beda straszne smieci :(.

Hajuto, musze to zrobic na wczoraj :/

0

Musisz sprawdzac co jakis czas, czy sesja o danym sid jeszcze istnieje (rozumiem, ze masz tam jakis mechanizm sesji - sid w PHP mozna wydobyc) . W bazie, przy koszyku musisz miec zapisany sid. Przejezdzasz po wszystkich koszykach i sprawdzasz dla ktorego sesja wygasla. Jesli wygasla, to wywalasz koszyk. Kod sprawdzajacy wstawiasz na jakiejs stronie, ktora w miare czesto sie wyswietla. Rozwiazanie powinno dzialac, choc od strony "elegancji i wydajnosci" jest generalnie do d***. Nie wiem, czy w PHP da sie przchwycic moment, gdy sesja jest niszczona. W PHP sa w ogole callbacki?

Tu jest jakis tutorial do timeoutow sesji - moze sie przyda, choc nie rozwiazuje problemu i kod jest dlugi i skomplikowany: http://www.phpfreaks.com/tutorials/77/1.php Moze jednak Cie cos natchnie.

Oczywiscie jesli ktos wie jak to porzadnie i elegancko zrobic, to ja tez jestem zainteresowany. Jesli sie nie da, no to mamy kolejny przyklad slabosci PHP do zastosowan "enterprise"...

0

Koszyk robi się raczej w sesji - do bazy zapisuje się dane dopiero wówczas gdy klient przejdzie do procedury realizacji koszyka. Dalsza pielęgnacja zamówień to już domena zarządcy sklepu.

0

Czyli rozumiem że te dane w bazie lądują dopiero wtedy gdy klient "przejdzie do procedury realizacji koszyka" a Ty chcesz obsłużyć sytuacje gdy jednak nie kliknie na submita "Kupuje", tak?

Jeśli tak to:

  1. Zapisujesz sobie time() "przejścia do procedury realizacji"
  2. Co x czasu odpalasz cronem skrypt który sprawdza czy nie ma tam przypadkiem jakiegoś "koszyka" który ostatni raz został zmodyfikowany powiedzmy pół godziny temu
0

Cron w PHP jest niepotrzebny do niczego. Wystarczy dowalić sobie zapytanie które usuwa rekordy starsze niż 30 minut przykładowo kiedy ktoś wejdzie na stronę główną sklepu.

Ale gratuluję odświeżenia! To już prawie 6 lat.

ten post 01-11-2004 21:05

0
Demonical Monk napisał(a)

Cron w PHP jest niepotrzebny do niczego. Wystarczy dowalić sobie zapytanie które usuwa rekordy starsze niż 30 minut przykładowo kiedy ktoś wejdzie na stronę główną sklepu.

Ok ale odpalenie crona co 30 min wydaje mi się bardziej optymalne niż zapytanie do bazy przy każdym wyświetleniu strony głównej :>

Demonical Monk napisał(a)

Ale gratuluję odświeżenia! To już prawie 6 lat.

:-D

1 użytkowników online, w tym zalogowanych: 0, gości: 1