Pliki cookies są używane przez przeglądarki internetowe do przechowywania danych niezbędnych do świadczenia przez nie usług online takich jak możliwość logowania, działanie koszyków w sklepach internetowych ale także śledzenie zachowań użytkowników czy tworzenie statystyk odwiedzalności serwisów.
Gdy przeglądarka łączy się ze stroną, w pierwszej kolejności szuka lokalnych cookies, odpowiednich dla danej witryny.
Jeżeli znajdzie – zostaną one przekazane serwerowi.
W PHP możemy ustawić cookie za pomocą funkcji setcookie($nazwa, $wartosc, $koniec, $sciezka, $domena, $bezpieczne)
.
Zdefiniowanych jest tu 6 argumentów.
Jednak wymagane jest podanie tylko pierwszego, którym jest nazwa ciasteczka.
Znaczenie pozostałych jest następujące:
time()
time()-3600
.
<?php setcookie('nazwa', 'Witam na stronie', time()+10); echo "ciasteczko: ".@$_COOKIE['nazwa']; ?>
W praktyce, najczęściej używamy trzech pierwszych argumentów.
Przykładowe ustawienia ciasteczka licznik z wartością 1 i czasem wygaśnięcia po godzinie time()+3600
Jest następujące:
setcookie('licznik', '1', time()+3600)
Efekt:
Ciasteczko o nazwie licznik i wartości 1 będzie istniło przez godzinę od momentu załadowania strony.
Każde odświeżenie strony powoduje ponowne utworzenie ciasteczka i rozpoczęcie odliczania czasu od aktualnego.
setcookie()
powoduje dodanie klucza o nazwie ciasteczka w tablicy superglobalnej $_COOKIES['nazwa']
z wartością podaną w wywołaniu funkcji.
Sprawdzenie istnienie ciasteczka sprowadza się do sprawdzenia istnienia lub wartości klucza
w tablicy $_COOKIE['klucz']
Przykład:
Zwiększenie wartości licznika następuje tylko w momencie gdy ciasteczko licznik nie istnieje:
// Zwiększenie licznika o 1 jeśli wartość ciasteczka "licznik" jest różna od 1
if($_COOKIE["licznik"] != 1 ) $count+=1;
lub
// Zwiększenie licznika o 1 jeśli nie ma ciasteczka "licznik"
if(!isset($_COOKIE["licznik"])) $count+=1;
ĆWICZENIE:
Kod licznika pokazany pod adresem: licznik
należy zmodyfikować, tak aby wartość licznika zwiększała się dopiero po upływie 30 sekund.
WSKAZÓWKI:
Napisz skrypt PHP, który po połączeniu się ze stroną:
Jeśli strona jest odwiedzana po raz pierwszy poprosi o imię użytkownika i zapisze je w ciasteczku.
Jeśli strona jest odwiedzana po raz kolejny wyświetli komunikat powitalny:
Zadanie dodatkowe:
Poza imieniem wyświetlana jest liczba odwiedzin strony.
Przykład:
Zadanie dodatkowe 2:
Dodaj możliwość usuwania ciasteczek imię oraz stan licznika.