Co to jest plik cookie?
Plik cookie to mały plik o maksymalnym rozmiarze 4 KB, który serwer WWW przechowuje na komputerze klienta.
Po ustawieniu pliku cookie wszystkie żądania stron, które następują po nim, zwracają nazwę i wartość pliku cookie.
Plik cookie można odczytać tylko z domeny, z której został utworzony. Na przykład plik cookie ustawiony przy użyciu domeny www.guru99.com nie może zostać odczytany z domeny kariera.guru99.com.
Większość witryn internetowych wyświetla elementy z innych dziedzin, np. Reklamy. Domeny obsługujące te elementy mogą również ustawiać własne pliki cookie. Są to pliki cookie stron trzecich.
Plik cookie utworzony przez użytkownika może być widoczny tylko dla niego. Inni użytkownicy nie widzą jego wartości.
Większość przeglądarek internetowych ma opcje wyłączania plików cookie, plików cookie stron trzecich lub obu.
W takim przypadku PHP odpowiada, przekazując token cookie w adresie URL.
Poniższy diagram ilustruje sposób działania plików cookie.
Tutaj,
1) Użytkownik prosi o stronę, która przechowuje pliki cookie
2) Serwer ustawia plik cookie na komputerze użytkownika
3) Inne żądania strony od użytkownika spowodują zwrócenie nazwy i wartości pliku cookie
W tym samouczku nauczysz się:
- Dlaczego i kiedy używać plików cookie?
- Tworzenie plików cookie
- Pobieranie wartości pliku cookie
- Usuń ciasteczka
- Co to jest sesja?
- Dlaczego i kiedy używać sesji?
- Tworzenie sesji
- Niszczenie zmiennych sesji
Dlaczego i kiedy używać plików cookie?
-
Http jest protokołem bezstanowym; pliki cookies pozwalają nam śledzić stan aplikacji za pomocą niewielkich plików przechowywanych na komputerze użytkownika.
Ścieżka przechowywania plików cookies zależy od przeglądarki.
Internet Explorer zwykle przechowuje je w folderze Temporal Internet Files.
-
Personalizacja doświadczenia użytkownika - osiąga się to poprzez umożliwienie użytkownikom wyboru ich preferencji.
Żądane strony, które następują, są personalizowane na podstawie preferencji ustawionych w plikach cookie.
- Śledzenie stron odwiedzanych przez użytkownika
Tworzenie plików cookie
Przyjrzyjmy się teraz podstawowej składni używanej do tworzenia pliku cookie.
TUTAJ,
- „Setcookie” php to funkcja PHP używana do tworzenia pliku cookie.
- „Cookie_name” to nazwa pliku cookie, którego będzie używał serwer podczas pobierania jego wartości ze zmiennej tablicowej $ _COOKIE. To jest obowiązkowe.
- „Cookie_value” to wartość pliku cookie i jego wartość obowiązkowa
- „[Expiry_time]” jest opcjonalne; można go użyć do ustawienia czasu wygaśnięcia pliku cookie, na przykład 1 godziny. Czas jest ustawiany za pomocą funkcji time () PHP plus lub minus liczba sekund większa niż 0, tj. Time () + 3600 przez 1 godzinę.
- „[Ścieżka_cookie]” jest opcjonalna; może służyć do ustawienia ścieżki cookie na serwerze. Ukośnik „/” oznacza, że plik cookie zostanie udostępniony w całej domenie. Podkatalogi ograniczają dostęp plików cookie do subdomeny.
- „[Domena]” jest opcjonalna, można jej użyć do zdefiniowania hierarchii dostępu do plików cookie, np. Www.cookiedomain.com oznacza całą domenę, podczas gdy www.sub.cookiedomain.com ogranicza dostęp plików cookie do www.sub.cookiedomain.com i jej podrzędnych domeny. Zauważ, że możliwe jest posiadanie subdomeny subdomeny, o ile całkowita liczba znaków nie przekracza 253 znaków.
- „[Bezpieczne]” jest opcjonalne, wartość domyślna to fałsz. Służy do określenia, czy plik cookie jest wysyłany za pośrednictwem protokołu https, jeśli jest ustawiony na true, lub http, jeśli jest ustawiony na false.
- „[Httponly]” jest opcjonalne. Jeśli jest ustawiona na true, tylko języki skryptowe po stronie klienta, tj. JavaScript, nie mają do nich dostępu.
Uwaga: funkcja cookie set php musi być wykonana przed tagiem otwierającym HTML.
Spójrzmy teraz na przykład, który wykorzystuje pliki cookie.
Stworzymy podstawowy program, który pozwoli nam przechowywać nazwę użytkownika w pliku cookie, który wygasa po dziesięciu sekundach.
Poniższy kod przedstawia implementację powyższego przykładu „cookies.php”.
Wynik:
the cookie has been set for 60 seconds
Pobieranie wartości pliku cookie
Utwórz inny plik o nazwie „cookies_read.php” z następującym kodem.
Wynik:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Uwaga: $ _COOKIE to PHP wbudowane w super zmienną globalną.
Zawiera nazwy i wartości wszystkich ustawionych plików cookie.
Liczba wartości, które
Tablica $ _COOKIE może zawierać w zależności od rozmiaru pamięci ustawionego w php.ini.
Wartość domyślna to 1 GB.
Testowanie naszej aplikacji.
Załóżmy, że zapisałeś swoje pliki PHP w folderze phptus.
- Krok 1 - otwórz przeglądarkę internetową i wprowadź adres URL http: //localhost/phptuts/cookies_read.php
Uwaga: Została wyświetlona tylko pusta tablica
- Krok 2 - Przeglądarka do adresu URL http: //localhost/phptuts/cookies.php
- Krok 3 - Wróć do pierwszej karty, a następnie kliknij przycisk odświeżania
Poczekaj minutę, a następnie ponownie kliknij przycisk odświeżania. Jakie otrzymałeś wyniki?
Usuń ciasteczka
- Jeśli chcesz zniszczyć plik cookie przed jego wygaśnięciem, ustaw czas wygaśnięcia na czas, który już minął.
- Utwórz nowy plik o nazwie cookie_destroy.php z następującym kodem
- Powtórz kroki od 1 do 3 z powyższej sekcji, aby pobrać wartości plików cookie.
- Otwórz adres URL http: //localhost/phptuts/cookie_destroy.php
- Przejdź do adresu URL http: //localhost/phptuts/cookies_read.php jakie wyniki wyświetla?
Co to jest sesja?
- Sesja to zmienna globalna przechowywana na serwerze.
- Każda sesja ma przypisany unikalny identyfikator, który jest używany do pobierania przechowywanych wartości.
- Za każdym razem, gdy tworzona jest sesja, plik cookie zawierający unikalny identyfikator sesji jest przechowywany na komputerze użytkownika i zwracany z każdym żądaniem do serwera. Jeśli przeglądarka klienta nie obsługuje plików cookie, w adresie URL wyświetlany jest unikalny identyfikator sesji php
- Sesje mogą przechowywać stosunkowo duże dane w porównaniu z plikami cookie.
- Wartości sesji są automatycznie usuwane po zamknięciu przeglądarki. Jeśli chcesz przechowywać wartości na stałe, powinieneś przechowywać je w bazie danych.
- Podobnie jak zmienna tablicowa $ _COOKIE, zmienne sesyjne są przechowywane w zmiennej tablicowej $ _SESSION. Podobnie jak w przypadku plików cookie, sesja musi zostać uruchomiona przed jakimikolwiek tagami HTML.
Dlaczego i kiedy używać sesji?
- Chcesz bezpiecznie przechowywać ważne informacje, takie jak identyfikator użytkownika, na serwerze, gdzie złośliwi użytkownicy nie mogą się z nimi złościć.
- Chcesz przekazywać wartości z jednej strony na drugą.
- Chcesz mieć alternatywę dla plików cookie w przeglądarkach, które nie obsługują plików cookie.
- Chcesz przechowywać zmienne globalne w wydajny i bezpieczniejszy sposób niż przekazywanie ich w adresie URL
- Tworzysz aplikację, taką jak koszyk, który ma tymczasowo przechowywać informacje o pojemności większej niż 4KB.
Tworzenie sesji
Aby utworzyć sesję, musisz najpierw wywołać funkcję PHP session_start, a następnie zapisać swoje wartości w zmiennej tablicowej $ _SESSION.
Załóżmy, że chcemy wiedzieć, ile razy strona została załadowana, możemy użyć do tego sesji.
Poniższy kod pokazuje, jak tworzyć i pobierać wartości z sesji
Wynik:
You are visitor number 1
Niszczenie zmiennych sesji
Funkcja session_destroy () służy do niszczenia całych zmiennych sesji PHP.
Jeśli chcesz zniszczyć tylko jeden element sesji, użyj funkcji unset ().
Poniższy kod ilustruje, jak używać obu metod.
Session_destroy usuwa wszystkie dane sesji, w tym pliki cookie związane z sesją.
Unset zwalnia tylko indywidualne zmienne sesji.
Pozostałe dane pozostają nienaruszone.
Podsumowanie
- Pliki cookie to małe pliki zapisywane na komputerze użytkownika
- Pliki cookie można odczytać tylko z domeny, która je wystawiła
- Pliki cookie mogą mieć czas wygaśnięcia, jeśli nie jest ustawiony, to plik cookie wygasa po zamknięciu przeglądarki
- Sesje są jak zmienne globalne przechowywane na serwerze
- Każda sesja otrzymuje unikalny identyfikator, który służy do śledzenia zmiennych użytkownika.
- Zarówno pliki cookie, jak i sesje muszą zostać uruchomione przed wysłaniem jakichkolwiek tagów HTML do przeglądarki.