Cookies

Cookies to jeden ze sposobów "oznaczania" użytkowników naszej strony. Cookies - ciasteczka, są to małe pliki zapisywane na dysku i mogą przechowywać dane zalogowanego użytkownika lub inne podobne dane.

Tworzenie i czytanie cookie

Tworzenie jest proste:
<?php

//setcookie (nazwa, wartość, czas wygaśnięcia);
setcookie("owoc", "banan", time()+3600);
Ten kod utworzy cookie o nazwie "owoc" i wartości "banan". Czas wygaśnięcia jest znacznikiem czasu, dajemy time() co oznacza czas w danym momencie +czas trwania w sekundach. Gdy wykonasz powyższy kod przejdź na stronę z takim kodem:
<?php

foreach ($_COOKIE as $klucz => $value)
	{
	echo $klucz.' -> '.$value.'<br />';
	}
Powinieneś zobaczy stworzone przez siebie cookie (i potencjalnie inne). UWAGA: w zależności od przeglądarki i jej ustawień cookies mogą nie działać.
setcookie ma jeszcze kilka opcji, mających na celu zagwarantowanie że nasze cookie będzie odpowiednio działać:
setcookie(nazwa, wartość, czas wygaśnięcia, ścieżka, domena, zabezpieczenie)
Ścieżka jest domyślnie ustawiona na ścieżkę do skryptu, który stworzył dane cookie. Dane z cookie są dostępne dla katalogu z tym skryptem i wszystkich jego podkatalogów. By np. cookie było dostępne w katalogach nadrzędnych dajemy "/". Domena określa - domenę dla której cookie jest przeznaczone (w której powstało). Domyślnie ma nazwę domeny w której powstało, zawsze to jednak możemy zmienić dając np "sub.domena.pl". Zabezpieczenie przyjmuje wartość 1 lub 0. Przy 1 przesyłane jest bezpiecznym połączeniem https://.

Bezpieczeństwo skryptów opartych o cookie

Cookies są plikami zapisywanymi na dysku i mogą być edytowane. Jeżeli cookie nie będą zabezpieczone to mogą posłużyć do włamań na naszą stronę. W przypadku np. systemu logowania w cookie umieszczmy dane umożliwiające identyfikacje użytkownika. Date te muszą mieć taki format by nie można było podszyć się pod użytkownika zmieniając dane w cookie. Problem ten rozwiążemy w oddzielnym artykule.

Szybsze wygaśnięcie cookie

Chcemy by istniejące cookie wygasło - używamy setcookie by stworzyć takie samo cookie ale z przeszłym czasem ważności:
<?php

setcookie("owoc", "banan", time()-3600);

Pamiętaj że jesteś ograniczony do 20 cookies na 1 komputerze a jedno cookie nie może być większe niż 4kb.
RkBlog

Podstawy PHP, 14 July 2008

Comment article
Comment article RkBlog main page Search RSS Contact