LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Perl (86) - CGI - cookies

Perl Cookies je mechanizmus, který umožňuje ukládat data na počítači klienta. Typickými úlohami pro cookies je počítání počtu návštěv, rozlišování uživatelů, pamatování obsahu formulářů nebo nákupní košíky v internetových obchodech.

24.8.2009 01:00 | Jiří Václavík | Články autora | přečteno 7797×

HTTP Cookie je nějaký textový soubor, který je součástí odpovědi webového serveru. Tato data si prohlížeč automaticky uloží. Jakmile někdy v budoucnu klient posílá tomuto webovému serveru další požadavek, pošle mu spolu s ním i uložená cookies.

Vzhledem k tomu, že cookies jsou součástí hlavičky HTTP požadavku, si je představíme zde.

To, že cookies jsou uloženy na straně klienta má pro autora webových stránek kladné i záporné vlastnosti. Cookies nám umožňují ukládat a zpětně využívat data při opakovaných návštěvách z téhož počítače, což může do jisté míry automatizovat činnost klienta. Toho se využívá konkrétně například při vyplňování formulářů, při ukládání nastavení apod. Mezi negativní důsledky patří to, že se nelze na nic spolehnout. Klient si může s cookies volně manipulovat - může je mazat nebo libovolně upravovat.

Struktura cookie

Cookie je fyzicky šestice datových položek. Jsou to následující.

  1. Název cookie - z jednoho serveru můžeme uchovávat několik cookies, které se budou lišit v názvu.
  2. Hodnota
  3. Doména - jméno webového hostitele, ze kterého sem byla cookie uložena
  4. Cesta - určuje, na který adresář domény budou cookies odesílány
  5. Čas vypršení - čas, kdy cookie pozbyde platnosti
  6. Secure - klient neodešle cookie, nebude-li to bezpečné

Poznámka - Pro názornější představu, jak cookies fungují, můžeme nahlédnout do svého www prohlížeče na nastavení cookies. Zde je seznam všech dostupných cookies i s hodnotami.

Konqueror - správa cookies

Náhled na cookies v prohlížeči

Ukládání cookies a modul CGI

Jednou z HTTP hlaviček je i Set-Cookie. Tu nastavujeme klíčem -cookie, předanému funkci header, jež generuje hlavičky.

Hodnotou Set-Cookie je řetězec formátovaný tak, aby obsáhl všechny datové položky cookies. Pro zformátování zde máme funkci cookie, která je součástí importované třídy :cgi a tedy i :standard.

Funkce cookie přijímá jako parametr opět hash, který může obsahovat prvky -name, -value, -domain, -path, -expires a -secure. Hodnotami těchto prvků jsou příslušné výše uvedené datové položky.

Hodnotou položky -expires může být buď datum ve formátu DD-MMM-YYYY hh:mm:ss, například 21-Feb-2009 09:11:55, nebo now pro platnost do konce relace. Dále je možné užít hodnotu ve formátu +<číslo><jednotka>. Taková cookie vyprší za daný počet jednotek. Dostupné jednotky jsou v tabulce.

JednotkaVýznam
ssekunda
mminuta
hhodina
dden
Mměsíc
yrok

Uveďme si příklad uložení cookie. Nejprve vytvoříme cookie stejnojmenou funkcí a následně odešleme hlavičky.

#!/usr/bin/perl
use strict;
use CGI qw(:standard);

my $cookie = cookie(
    -name=>"pocet_navstev",
    -value=>1,
    -expires=>"+10d",
);
print header(-type=>"text/plain", -cookie=>$cookie);

#následuje samotný obsah dokumentu

Nyní se podívejte ve vašem oblíbeném www prohlížeči na správu cookies. Vytvořila se zde nová položka. Na adrese localhost máme proměnnou pocet_navstev s hodnotou 1. Zde je screenshot zobrazující správu cookies v Konqueroru, kde je hezky vidět, co se stalo.

Konqueror - správa cookies

Naše první cookie

Je-li zapotřebí uložit více než jedinou cookie, lze jako argument prvku -cookie předat odkaz na seznam.

print header(-cookie=>[$cookie1,$cookie2]);

Získávání uložených cookies a modul CGI

Voláním funkce cookie s jménem cookie jako parametrem získáme nazpět hodnotu.

$cookie = cookie("cookie");

V seznamovém kontextu vrací funkce cookie seznam jmen všech cookies.

Příklad - počítadlo návštěv

Na závěr si napíšeme jednoduché počítadlo návštěv. Pokaždé, když návštěvník zobrazí naši stránku, dostane informaci, kolikkrát tu byl.

#!/usr/bin/perl
use strict;
use CGI qw(:standard);

my $pocet_navstev = cookie("pocet_navstev") or 0;
$pocet_navstev++;

my $cookie = cookie(
    -name=>"pocet_navstev",
    -value=>$pocet_navstev,
    -expires=>"+1y",
);

print header(-cookie=>$cookie);

print start_html();
if($pocet_navstev == 1){
    print h1("Vítejte! Jste zde poprvé!");
}else{
    print h1("Jste tu již po $pocet_navstev.");
}
print end_html();

Nyní tento skript několikkrát spustíme a budeme monitorovat stav cookies. Zde vidíme, jak se hodnota naší cookie mění.

Stav cookie po 1. návštěvě Stav cookie po 2. návštěvě Stav cookie po 3. návštěvě

1. návštěva *** 2. návštěva *** 3. návštěva

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.4.2017 15:20 /František Kučera

Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).


Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

8.1.2017 17:51 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 19. ledna od 18:30 v pražském hackerspacu Brmlab. Tentokrát je tématem srazu ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. K vidění bude mechanická klávesnice dasKeyboard, trackball Logitech nebo grafický tablet (a velký touchpad) Wacom. Přineste i vy ukázat svoje zajímavé klávesnice a další HW. V 18:20 je sraz před budovou, v 18:30 jdeme společně dovnitř, je tedy dobré přijít včas. Podle zájmu se později přesuneme do nějaké restaurace v okolí.
Přidat komentář

1.12.2016 22:13 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.
Komentářů: 1

4.9.2016 20:13 /Pavel `Goldenfish' Kysilka
PR: Dne 22.9.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, provozování ERP v cloudu, o hostování různých typů softwaru, ale třeba i o zálohování dat nabízeném podnikům formou služby.
Přidat komentář

1.9.2016 11:27 /Honza Javorek
Česká konference o Pythonu, PyCon CZ, stále hledá přednášející skrz dobrovolné přihlášky. Máte-li zajímavé téma, neváhejte a zkuste jej přihlásit, uzávěrka je již 12. září. Konference letos přijímá i přednášky v češtině a nabízí pomoc s přípravou začínajícím speakerům. Řečníci mají navíc vstup zadarmo! Více na webu.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

17.4.2017 19:15 / Jakub shoop
chyba

7.4.2017 15:43 / Som
foreign car repair

31.3.2017 18:33 / David Ostrovsky
Dotazník na obeznámenost s hummusem.

24.3.2017 11:54 / Hui
country cottages

16.3.2017 16:33 / BezvaDesign.cz
Re: Hledám grafika do teamu

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze