PHP - Koszyk Na Zakupy dla Sklepu Internetowego - wstęp
| DZIAŁANIE: | brak działania |
Kod:
brak kodu :P
Ewentualne Objaśnienia:
W następnym przykładzie chciałbym przedstawić możliwość zbudowania koszyka na
zakupy, który oczywiście zazwyczaj używamy przy sklepach Internetowych.
Zanim jednak to uczynię, przypomnijmy sobie troszkę informacji o Cookies oraz
Sesjach w PHP.
COOKIES
- ciasteczka to pewna para nazwa-wartość powiązaną z daną stroną WWW,
przechowująca na komputerze odwiedzającego tę parę
- po ustawieniu ciasteczka wszystkie żądania tejże strony zawierają cookie, do
czasu kiedy ono wygaśnie
- ciasteczko ustawiamy funkcją : setcookie, składnia :
setcookie ( nazwa, wartość, data_ważności, ścieżka, domena, bezpieczne )
- jak pamiętacie setcookie musi został wywołane w kodzie przed wszelkimi
znacznikami ( wysłaniem jakiejkolwiek treści )
- jedyny wymagane argument setcookie to nazwa
- gdy wywołamy cookie tylko z parametrem nazwa - spowoduje to usunięcie cookie z
przeglądarki ( jeśli istnieje )
- parametr wartość pozwala na stworzenie nowego cookie lub też zmianę
wartości istniejącego
- cookies domyślnie istnieje dopóki nie zostanie zamknięta przeglądarka
- jeśli chcemy aby cookie istniało dłużej należy ustawić parametr
data_ważności - podajemy ilość sekund jaka musi upłynąć od 1.01.1970r , po
tym czasie cookie zostanie usunięte
- używamy zazwyczaj funkcji time() + wartość, na przykłąd time() + 3600 oznacza
ważność jednej godziny
- aby usunąć cookie, które miało określoną datę ważności wystarczy podać datę,
która już była, na przykład rok wstecz :
// ustawienie cookie na jeden rok
setcookie ('cookie','wartosc',time() + 3600*24*365);
// usunięcie tego cookie
setcookie ('cookie','wartosc',time() - 3600*24*365
- parametr ścieżka pozwala na ograniczenie dostępu do cookie dla do
określonej ścieżki na serwerze, na przykład po ustawieniu : /bmedon/ - cookie
będą zwracać żądania jedynie stron z katalogu bmedon i jego podkatalogów. Dzięki
/ na końcu uniemożliwiony jest dostęp dla katalogów typu bmedoncostam itd.
Przydatne to możę być na przykład gdy mamy na serwerze dla każdego użytkownika
osobny katalog domowy. Dzięki temu ustawiamy cookie nie udostępniając danych
osób odwiedzających stronę skryptom innych userów serwera.
- parametr domena ma podobne zastosowanie jak parametr ścieżka. Ogranicza
dostęp do ciasteczek do konkretnej domeny. Domyślnie cookie jest zwracane
wyłącznie do komputera, z którego zostało przysłane. Czasami niektóre serwisy
mają kilka subdomen pod, którymi kryją się te same serwisy - na przykład
jakasfirma.com oraz strona.jakasfirma.com - wtedy ustawiamy cookie ( par domena
) na '.jakasfirma.com'. Dzięki znaczkowi kropki przed jakasfirma - zapobiegamy
dostępowi do cookie przez inne strony niż example.com ponieważ określiliśmy, że
domena kończy się na jakasfirma.com .
- parametr bezpieczne o wartości 1 oznacza, że cookie powinno zostać
wysłane jedynie w odpowiedzi na żądania zgłaszane poprzez połączenie SSL
(https://)
- wymaganym parametrem jest jedynie jak mówiłem nazwa, ale nie można określić
parametru następnego bez podania poprzedniego, na przykład nie podamy parametru
domena jeśli wcześniej nie podamy daty ważności . Aby pominąć parametr podajemy
dla liczbowych (data_ważności, bezpieczne) wartość 0 , a dla tekstowych (wartośc,
ścieżka, domena) puste ''
- poprzez cookies jednak nie jesteśmy w stanie przechowywać dużej ilości
informacji oraz wielu ciasteczek dla danej witryny, także nie wszyscy
użytkownicy po prostu cookies akceptują w swoich przeglądarkach. Dlatego trzeba
ich rozważnie używać, do większych celów przydadzą się nam sesje
SESJE
- Sesje doskonale zastępują w wielu rozwiązaniach ( większości ? ) ciasteczka
- dzięki sesją dane gromadzimy na serwerze WWW , a nie jako ciasteczka w
przeglądarce
- sesja ustawia jedynie 1 cookie, które zawiera tzw. identyfikator sesji - PHP
przy ładowaniu następnych stron i ładuje dane powiązane z daną sesją
- gdyby jedna cookie nie było obsługiwane PHP przekazuje identyfikator sesji w
adresie - do każdego generalnie linka zostanie dodany ID sesji, dzięki temu
będzie on przekazywany do kolejnych stron serwisu
- czyli jak widać PHP sobie dobrze radzi nawet kiedy cookies są wyłączone
- funkcja session_start tworzy nową sesję lub szuka identyfikatora
istniejącej
- podobnie jak setcookie musi być wywołana na samym początku - przed wysłaniem
jakichkolwiek danych do przeglądarki
- usuwamy zmienną z bieżącej sesji poprzez : unset($_SESSION['nazwasesji']);
- czyścimy przechowywane wartości poprzez : $_SESSION = array();
- niszczymy sesje : session_destroy();
To tyle tytułem przypomnienia cookies oraz sesji - zapraszam również do cofnięcia się i przeanalizowania poprzednich przykładów dotyczących tych zagadnień. Teraz zajmę się koszykiem.