+ All Categories
Home > Technology > Programare Web - Cookie-uri si sesiuni

Programare Web - Cookie-uri si sesiuni

Date post: 24-Dec-2014
Category:
Upload: sabin-buraga
View: 3,877 times
Download: 3 times
Share this document with a friend
Description:
Details about the management of cookies and sessions in PHP.
21
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 1 Tehnologii Web Tehnologii Web 2007 2007 Programare Web Programare Web Cookie Cookie -uri & sesiuni -uri & sesiuni Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/
Transcript
Page 1: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

1

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

Programare WebProgramare WebCookieCookie-uri & sesiuni-uri & sesiuni

Dr. Sabin-Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Page 2: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

2

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

•Cookie-uri •Sesiuni

cuprinscuprins

Page 3: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

3

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Mecanism standard care permite ca un server Web sa trimita anumite informatii pe calculatorul unui client (utilizator), prin intermediul browser-ului, sa ceara clientului sa stocheze aceste informatii pentru ca, ulterior, navigatorul sa returneze informatiile spre serverul WWW

• Mijloc persistent de stocare a datelor pe masina clientului Web cu scopul de a fi accesate ulterior de pe server

cookiecookie-uri-uri

Page 4: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

4

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Utilizari:– memorarea preferintelor utilizatorilor – stocarea informatiilor de autentificare– tranzactii in cadrul comertului electronic – managementul sesiunilor Web– completarea automata a formularelor

– si multe altele

cookiecookie-uri-uri

Page 5: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

5

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Tipuri:– Cookie-uri persistente

•nu vor fi distruse la inchiderea navigatorului, ci vor fi memorate intr-un fisier, perioada lor de viata fiind stabilita de creatorul cookie-urilor

– Cookie-uri nepersistente•dispar la inchiderea browser-ului

cookiecookie-uri-uri

Page 6: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

6

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Un cookie consta dintr-o pereche nume=valoare • Valoarea este un sir de caractere codificat

in maniera URL-urilor • Datele referitoare la un cookie vor fi

receptionate de navigator care mentine o lista de cookie-uri apartinind serverului care le-a trimis

• Un cookie este trimis unui client incluzind cimpul-antet Set-Cookie intr-un raspuns HTTP

cookiecookie-uri-uri

Page 7: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

7

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure – expires – data si timpul cind cookie-ul

va expira si va fi sters de pe disc – domain – numele simbolic al serverului

care a generat cookie-ul– path – specifica un subset de URL-uri

din domeniul corespunzator unui cookie– secure – cookie-ul este transmis

doar daca tranzactia este sigura (via HTTPS)

cookiecookie-uri-uri

Page 8: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

8

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Un cookie e transmis doar daca intruneste toate conditiile de validitate (se potrivesc domeniul, calea de directoare, timpul de expirare si securitatea canalului de comunicatie)

• Serverul va primi de la client, in antetul HTTP, o linie de forma: Cookie: nume1=valoare1; nume2=valoare2...

cookiecookie-uri-uri

Page 9: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

9

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

•Stocarea cookie-urilor persistente:−Netscape/Mozilla

fisierul cookies sau cookies.txt−Internet Explorer

fisiere [email protected]

cookiecookie-uri-uri

Page 10: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

10

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Creare– CGI (bash)

#!/bin/bash echo "Set-Cookie: culoare=verde; path=/; expires=Mon, 03-Dec-2007 07:33:00 GMT" ...

– PHP – functia setcookie()<?php setcookie ("alta_culoare", "albastra"); echo "Un cookie de culoarea " . $_COOKIE["alta_culoare"];

?>

cookiecookie-uri-uri

Page 11: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

11

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Expirare– Se anuleaza valoarea si timpul, eventual

resetindu-se si celelalte atribute ale cookie-ului

– PHP <?php setcookie ($nume_cookie, "", 0, "/", "", 0);?>

cookiecookie-uri-uri

Page 12: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

12

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Consultare– Cookie-urile se regasesc in variabila-antet

HTTP_COOKIE– CGI (Perl)

@envpairs = split(/;/, $ENV{'HTTP_COOKIE'}); foreach $pair (@envpairs) { ($name, $value) = split(/=/, $pair); $cookie{$name} = $value; } $fundal = $cookie{'alta_culoare'};

– PHP – cookie-ul este vazut ca o variabila: $_COOKIE['nume_cookie'] (sau $nume_cookie)

cookiecookie-uri-uri

Page 13: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

13

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Consultare– Direct in navigator prin JavaScript:

javascript:document.cookie

cookiecookie-uri-uri

Page 14: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

14

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Retinem culoarea de fundal preferata de un utilizator:

define ('CULOARE_IMPLICITA', 'white'); // verificam daca exista culoarea $culoare = $_REQUEST['culoare']; if (!$culoare) { // nu exista $culoare = CULOARE_IMPLICITA;} // setam cookie-ul sa expire peste 10 zile if (!setcookie('culoare_fundal', $culoare,

time()+ 60 * 60 * 24 * 10)) { echo 'Cookie-ul n-a putut fi setat'; }

cookiecookie-uri | exemplu-uri | exemplu

Page 15: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

15

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

<html> <head> <title>Culori preferate</title> <style type="text/css"> body { background:

<?php echo $_COOKIE['culoare_fundal']; ?> } </style> </head> <body> <p>Alegeti culoarea de fundal preferata

ce va aparea la urmatoarea vizita:</p>

cookiecookie-uri | exemplu -uri | exemplu (cont.)(cont.)

Page 16: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

16

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<select name="culoare"> <?php // generam lista de culori foreach (array ('cyan', 'yellow', 'white', 'pink', 'blue')

as $c) { echo '<option value="' . $c . '">' . $c . '</option>'; } ?> </select> <input type="submit" value="Alege culoarea" /> </form></body></html>

cookiecookie-uri | exemplu -uri | exemplu (cont.)(cont.)

Page 17: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

17

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• HTTP este un protocol stateless, neputind oferi informatii daca cereri succesive provin de la acelasi client (eventual, de la aceeasi instanta a navigatorului)

• Apare necesitatea de a prezerva anumite date de-a lungul mai multor accesari inrudite– Exemple: starea cosului de cumparaturi,

formulare Web completate in mai multi pasi, paginarea continutului, starea autentificarii etc.

sesiunisesiuni

Page 18: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

18

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Orice vizitator al sitului va avea asociat un identificator unic – session ID (SID)– Stocat intr-un cookie ori propagat via URL

• Unele servere de aplicatii garanteaza integritatea sesiunii si dupa o restartare (a serverului ori a aplicatiei)

• Unei sesiuni i se pot asocia diverse variabile sa fie mentinute intre accesari consecutive

• O sesiune se poate inregistra (initia) implicit sau explicit, in functie de serverul de aplicatii sau de configuratia stabilita

sesiunisesiuni

Page 19: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

19

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Pentru PHP, exista functiile session_start(), session_register(), session_id(), session_unregister(), session_destroy() – Exemplu (contorizarea accesarilor):

<?php session_start (); if (!isset($_SESSION['accesari'])) { $_SESSION['accesari'] = 0; } else { $_SESSION['accesari']++; }?>

sesiunisesiuni

Page 20: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

20

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

•Cookie-uri •Sesiuni

rezumatrezumat

Page 21: Programare Web - Cookie-uri si sesiuni

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

21

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

Intrebari…?


Recommended