Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 5327 razy

Ponieważ protokół HTTP nie dostarcza możliwości przesyłania danych pomiędzy dwiema stronami konieczne było wymyślenie odpowiedniego mechanizmu na realizację tego typu zadań. Przykładem (takim najprostszym) jest stworzenie statystyki strony, która zliczałaby nowo odwiedzających stronę użytkowników. W PHP do tego typu prostych zadań służą ciasteczka, które umożliwiają przechowywanie niewielkiej ilości informacji na dysku twardym przeglądającego stronę użytkownika.

Uwaga! Ciasteczek nie powinno się wykorzystywać do przesyłania danych poufnych takich jak login czy hasło, a to dlatego, że takie dane łatwo jest wykraść.

Do tworzenia ciasteczek służy funkcja setcookie, natomiast dane z istniejącego ciasteczka utworzonego przez stronę, z której ono pochodzi są dostępne w globalnej tablicy asocjacyjnej $_COOKIE. Oto prosty przykład tworzenia takiego ciasteczka:

<?php setcookie('last_time', time(), time() + 30 * 24 * 60 * 60); // time() - bieżąca data + 30 [dni] * 24 [godziny] * 60 [minuty] * 60 [sekundy] = czas wygaśnięcia ciasteczka w sekundach if(isset($_COOKIE['last_time'])){ echo("<p>Już tu byłeś, już tę stronę nawiedziłeś!</p>"); echo("<p>" . date('d.m.Y, H:i:s', $_COOKIE['last_time']) . "</p>"); }else{ echo("<p>Witaj w moich skromnych progach</p>"); } ?>

Funkcja setcookie jako pierwszy argument przyjmuje nazwę klucza, pod którym w tablicy asocjacyjnej $_COOKIE zostanie umieszczona podana w następnym argumencie tejże funkcji wartość. Kolejny argument określa datę w sekundach, po której przekroczeniu ciasteczko wygasa (zostaje usunięte przez przeglądarkę z dysku użytkownika).

Powyższy kod po pierwszym odwiedzeniu strony powinien wyświetlić coś takiego:

Witaj w moich skromnych progach

A po odświeżeniu strony oczom twym powinno pokazać się coś takiego:

Już tu byłeś, już tę stronę nawiedziłeś!

31.12.2016, 10:24:59

Funkcja setcookie powinna być wywołana na samym początku strony, aby zadziałała poprawnie i utworzyła na dysku twardym odwiedzającego stronę ciasteczko z informacjami. Funkcja ta przyjmuje również inne parametry, takie jak: