Header

PHP kolačići

Pošalji komentar

Ocenite članak

 

Kolačić (kuki, engl. Cookie) je mali fajl koji web server formira na računaru posetioca web sajta, odnosno korisnika web aplikacije. Svaki put kada korisnik putem web brauzera zatraži stranicu, uz zahtev će poslati i kolačić.

PHP podatke o kolačićima čuva u matrici $_COOKIE.

Vrednosti u kolačiću se zadaju pomoću sledeće PHP funkcije:

setcookie($ime, $vrednost, $istice, $putanja, $domen, $ssl, $samoHTML);


  • $ime - ime kolačića
  • $vrednost - vrednost dodeljena kolačiću. Čuva se u kompjuteru korisnika.
  • $istice - vreme kada kolačić treba da istekne. Zadaje se kao Unix vreme. Ukoliko je zadata kao 0 (nula), kolačić će isteći na kraju sesije - kada se web brauzer zatvori.
  • $putanja - putanja na veb serveru gde će kolačić važiti.
    '/' - dostupan na celom domenu
    '/primer/' - dostupan samo u direktorijumu /primer/ i njegovim poddirektorijumima
  • $domen - ime domena na kome kolačić važi.
    mojsajt.com - važi na celom sajtu
    www.mojsajt.com - važi samo na poddomenu www
    .mojsajt.com - važi na svim poddomenima
  • $ssl - TRUE ili FALSE. Ako je podešen na TRUE, kolačić će biti setovan samo ako postoji HTTPS veza
  • $samoHTML - kolačić će biti dostupan samo preko HTTP protokola


U sledećem primeru je prikazan proces kreiranja kolačića i čitanja njihove vrednosti. Fajl ćemo nazvati kolacici.php. Pozovite skriptu:

http://primer1:8080/kolacici.php


U prvom prolazu, kolačić nije definisan. Hajde onda da ga napravimo. Imamo nekoliko podataka koje ćemo smestiti u matricu $podaci. Kako matrica nije dobar format za smeštanje u kolačić, izvršićemo njenu serijalizaciju i potom dobijenu vrednost smestiti u kolačić pomoću PHP funkcije setcookie.

Osvežite stranicu u web brauzeru (taster F5 ili Refresh page)

U drugom prolazu kolačić postoji i možemo da pročitamo njegovu vrednost iz promenljive $_COOKIE. Za dalju upotrebu, tu vrednost treba da deserijalizujemo čime se vraća u format matrice.

1
<?php
2
3
$ime_kukija = 'kolacic';
4
5
/* Prvi prolaz, kuki nije postavljen */
6
if (empty($_COOKIE))
7
{
8
/*Podaci koji se ubacuju u kuki. Definišu se kao matrica,
9
ali će serijalizacijom biti smešteni u jedno polje u 
10
kukiju */
11
$podaci = array(
12
'Vežba'=> 4,
13
'Zadatak' => 'Korišćenje kukija',
14
'Autor' => 'Miloš',
15
'Vreme' => time()
16
);
17
18
/* Matrica ne može u kolačić. Izvrši serijalizaciju */
19
$podaci = serialize($podaci);
20
21
/* Definiši kuki */
22
setcookie($ime_kukija, $podaci, time()+3600, '/');
23
24
/* Ispiši poruku */
25
echo'Ovo je prvi ulazak na stranicu. Kuki nije podešen. ' .
26
'Pritisnite taster F5 (Refresh)';
27
}
28
/* Kuki je postavljen */
29
else
30
{
31
/* Pročitaj sadržaj kukija */
32
$podaci = $_COOKIE[$ime_kukija];
33
34
/* Vrati podatke u formu matrice */
35
$podaci = unserialize($podaci);
36
37
/* Ispiši sadržaj matrice */
38
foreach($podaci AS $k => $v)
39
echo "$k => $v<br>";
40
}
41
42
?>