Zastosowanie plików cookies
Technikum » PAI » Język PHP » Pliki cookies i sesje » Zastosowanie plików cookies
Jednym z typowych zastosowań plików cookies jest przechowywanie nazwy użytkownika i hasła na komputerze. Przy ponownej wizycie na stronie nie trzeba logować się ponownie i podawać hasła. Pliki cookies mogą przechowywać również inne informacje, np. nazwisko i imię użytkownika, czas ostatniej wizyty, zawartość koszyka itp.
Data ostatnich odwiedzin na stronie
Wykorzystując plik cookie, można określić datę ostatnich odwiedzin strony przez użytkownika.
Przykład
Skrypt tworzący plik cookie:
Zostanie utworzony plik cookie wizyta. Termin wygaśnięcia to 30 dni od chwili jego utworzenia (2 592 000 = 60 s * 60 min * 24 godz. * 30 dni).
Plik tworzący skrypt odczytujący zawartość pliku cookie:
W podanym przykładzie sprawdzamy, czy istnieje plik cookie. Jeżeli tak, to wyświetli się informacja powitalna oraz data ostatniej wizyty.
Przesyłanie danych użytkownika
Dane użytkownika zostaną przekazane przez formularz, który będzie zawierał pole do wprowadzania imienia i nazwiska użytkownika. Pobrany z formularza parametr zawierający nazwisko i imię użytkownika zostanie przekazany do utworzonego pliku cookie.
Przykład
Skrypt PHP realizujący podane zadanie ma postać:
W podanym skrypcie rozpatrywane są trzy sytuacje:
- W pierwszej plik cookie nie został utworzony i z formularza nie zostały przesłane dane — wtedy należy wywołać formularz rejestracyjny.
- W drugiej dane z formularza zostały przesłane, ale nie istnieje plik cookie — wtedy należy utworzyć taki plik.
- W trzeciej dane z formularza zostały przesłane oraz istnieje plik cookie — wtedy wyświetli się komunikat witający użytkownika po raz kolejny na stronie.
Zapisana w kodzie instrukcja if(!isSet($_COOKIE['dane']) && !isSet($_POST['nazw'])) sprawdza, czy istnieje plik cookie i czy z formularza został przekazany parametr zawierający nazwisko i imię użytkownika. Jeżeli nie, to zostanie utworzona strona zawierająca formularz. Z formularza za pomocą metody POST zostanie przekazany parametr nazw. Użyty operator ! oznacza negację, a operator && iloczyn logiczny.
Druga instrukcja if(isSet($_POST['nazw'] )) sprawdza, czy do skryptu zostały przesłane dane z formularza. Jeżeli tak, to za pomocą funkcji setcookie() do przeglądarki jest wysyłany plik cookie o nazwie dane. Jego wartością jest wartość parametru nazw pobrana z tablicy $_POST. Czas ważności pliku został ustawiony na 236 dni. Na stronie wyświetli się tekst z podziękowaniem za wprowadzenie danych.
Trzecia sytuacja wystąpi, jeśli istnieje plik cookie. Wtedy na stronie wyświetli się informacja o rozpoznaniu użytkownika.
Zliczanie liczby odwiedzin
Przykład
Zliczanie liczby odwiedzin strony przez użytkownika:
W podanym kodzie za pomocą funkcji isSet() sprawdzane jest, czy istnieje plik cookie o nazwie odwiedz. Jeżeli nie, to zmienna $odw przechowująca liczbę odwiedzin ustawiana jest na 1. Jeżeli tak, to odczytywana jest z tablicy $_COOKIE wartość pliku odwiedz. Odczytana wartość za pomocą funkcji intval() jest zamieniana na liczbę całkowitą i zwiększana o 1. Funkcja intval() jest niezbędna, ponieważ wartości odczytywane z tablicy $_COOKIE są ciągami znaków.
Po wykonaniu tych czynności do przeglądarki wysyłany jest plik cookie o nazwie odwiedz. Jego wartością jest liczba odwiedzin zapisana w zmiennej $odw. Na stronie wyświetli się informacja o liczbie odwiedzin. Dodatkowo sprawdzana jest wartość zmiennej $odw. Jeżeli wynosi ona 1, to wyświetlane zdanie będzie kończyło się słowem raz, dla pozostałych wartości będzie kończyło się słowem razy.
Zadania
- Przetestuj działanie skryptów PHP umieszczonych powyżej.
- Napisz skrypt, w którym będzie tworzony plik cookie zapamiętujący wprowadzoną przez formularz datę urodzin użytkownika. Skrypt powinien wyświetlać informację, za ile dni użytkownik będzie obchodził urodziny.