Sesiune PHP & Cookie-uri PHP cu exemplu

Cuprins:

Anonim

Ce este cookie-ul?

Un cookie este un fișier mic cu dimensiunea maximă de 4KB pe care serverul web îl stochează pe computerul client.

Odată ce un cookie a fost setat, toate solicitările de pagină care urmează returnează numele și valoarea cookie-ului.

Un cookie poate fi citit numai din domeniul din care a fost emis. De exemplu, un set de cookie-uri care utilizează domeniul www.guru99.com nu poate fi citit din domeniul carieră.guru99.com.

Majoritatea site-urilor de pe internet afișează elemente din alte domenii, cum ar fi publicitatea. Domeniile care deservesc aceste elemente își pot seta și propriile cookie-uri. Acestea sunt cunoscute sub numele de cookie-uri de la terți.

Un cookie creat de un utilizator poate fi vizibil doar pentru ei. Alți utilizatori nu își pot vedea valoarea.

Majoritatea browserelor web au opțiuni pentru dezactivarea cookie-urilor, cookie-urilor terților sau ambelor.

Dacă acesta este cazul, PHP răspunde prin trecerea simbolului cookie în adresa URL.

Diagrama prezentată mai jos ilustrează modul în care funcționează cookie-urile.

Aici,

1) Un utilizator solicită o pagină care stochează cookie-uri

2) Serverul setează cookie-ul pe computerul utilizatorului

3) Alte solicitări de pagină de la utilizator vor returna numele și valoarea cookie-ului

În acest tutorial, veți învăța-

  • De ce și când să folosim cookie-urile?
  • Crearea cookie-urilor
  • Preluarea valorii cookie-urilor
  • Ștergeți cookie-urile
  • Ce este o sesiune?
  • De ce și când să folosiți sesiunile?
  • Crearea unei sesiuni
  • Distrugerea variabilelor sesiunii

De ce și când să folosim cookie-urile?

  • Http este un protocol apatrid; cookie-urile ne permit să urmărim starea aplicației folosind fișiere mici stocate pe computerul utilizatorului.

    Calea în care sunt stocate cookie-urile depinde de browser.

    Internet Explorer le stochează de obicei în folderul Temporal Internet Files.

  • Personalizarea experienței utilizatorului - acest lucru se realizează permițându-le utilizatorilor să își selecteze preferințele.

    Pagina solicitată care urmează este personalizată pe baza preferințelor setate în cookie-uri.

  • Urmărirea paginilor vizitate de un utilizator

Crearea cookie-urilor

Să vedem acum sintaxa de bază utilizată pentru a crea un cookie.

AICI,

  • Php „setcookie” este funcția PHP utilizată pentru a crea cookie-ul.
  • „Cookie_name” este numele cookie-ului pe care îl va folosi serverul atunci când își preia valoarea din variabila matrice $ _COOKIE. Este obligatoriu.
  • „Cookie_value” este valoarea cookie-ului și este obligatorie
  • „[Expiry_time]” este opțional; poate fi folosit pentru a seta timpul de expirare al cookie-ului, cum ar fi 1 oră. Timpul este setat folosind funcțiile PHP time () plus sau minus un număr de secunde mai mare de 0 adică time () + 3600 timp de 1 oră.
  • „[Cookie_path]” este opțional; poate fi folosit pentru a seta calea cookie-ului pe server. Slash-ul direct „/” înseamnă că cookie-ul va fi disponibil pe întregul domeniu. Subdirectoarele limitează accesul cookie la subdomeniu.
  • „[Domeniu]” este opțional, poate fi folosit pentru a defini ierarhia accesului cookie, adică www.cookiedomain.com înseamnă întregul domeniu în timp ce www.sub.cookiedomain.com limitează accesul cookie la www.sub.cookiedomain.com și sub domenii. Rețineți că este posibil să aveți un subdomeniu al unui subdomeniu atâta timp cât totalul de caractere nu depășește 253 de caractere.
  • „[Securizat]” este opțional, implicit este fals. Este folosit pentru a determina dacă cookie-ul este trimis prin https dacă este setat la true sau http dacă este setat la false.
  • „[Httponly]” este opțional. Dacă este setat la adevărat, atunci numai limbajele de scriptare din partea clientului, adică JavaScript nu le pot accesa.

Notă: funcția cookie set php trebuie executată înainte de eticheta de deschidere HTML.

Să vedem acum un exemplu care utilizează cookie-uri.

Vom crea un program de bază care ne permite să stocăm numele de utilizator într-un cookie care expiră după zece secunde.

Codul de mai jos prezintă implementarea exemplului de mai sus „cookies.php”.

Ieșire:

the cookie has been set for 60 seconds

Preluarea valorii cookie-urilor

Creați un alt fișier numit „cookies_read.php” cu următorul cod.

Ieșire:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Notă: $ _COOKIE este un PHP construit în variabilă super globală.

Acesta conține numele și valorile tuturor cookie-urilor setate.

Numărul de valori pe care

$ _COOKIE array poate conține depinde de dimensiunea memoriei setată în php.ini.

Valoarea implicită este de 1 GB.

Testarea aplicației noastre.

Să presupunem că ați salvat fișierele PHP în dosarul phptus.

  • Pasul 1 - deschideți browserul web și introduceți adresa URL http: //localhost/phptuts/cookies_read.php

Notă: A fost afișată doar o matrice goală

  • Pasul 2 - Browser la adresa URL http: //localhost/phptuts/cookies.php

  • Pasul 3 - Reveniți la prima filă, apoi faceți clic pe butonul de reîmprospătare

Așteptați un minut, apoi faceți clic din nou pe butonul de reîmprospătare. Ce rezultate ai obținut?

Ștergeți cookie-urile

  • Dacă doriți să distrugeți un cookie înainte de expirarea acestuia, atunci setați timpul de expirare la un timp care a trecut deja.
  • Creați un nou fișier numit cookie_destroy.php cu următorul cod
  • Repetați pașii de la 1 la 3 din secțiunea de mai sus pentru recuperarea valorilor cookie-urilor.
  • Deschideți adresa URL http: //localhost/phptuts/cookie_destroy.php
  • Treceți la adresa URL http: //localhost/phptuts/cookies_read.php ce rezultate afișează?

Ce este o sesiune?

  • O sesiune este o variabilă globală stocată pe server.
  • Fiecărei sesiuni i se atribuie un id unic care este folosit pentru a recupera valorile stocate.
  • Ori de câte ori este creată o sesiune, un cookie care conține ID-ul sesiunii unic este stocat pe computerul utilizatorului și returnat cu fiecare cerere către server. Dacă browserul client nu acceptă cookie-urile, ID-ul unic al sesiunii php este afișat în adresa URL
  • Sesiunile au capacitatea de a stoca date relativ mari în comparație cu cookie-urile.
  • Valorile sesiunii sunt șterse automat când browserul este închis. Dacă doriți să stocați valorile permanent, atunci ar trebui să le stocați în baza de date.
  • La fel ca variabila matrice $ _COOKIE, variabilele de sesiune sunt stocate în variabila matrice $ _SESSION. La fel ca cookie-urile, sesiunea trebuie pornită înainte de orice etichete HTML.

De ce și când să folosiți sesiunile?

  • Doriți să stocați informații importante, cum ar fi ID-ul utilizatorului, mai sigur pe server, în cazul în care utilizatorii rău intenționați nu se pot tempera cu aceștia.
  • Doriți să transmiteți valori de la o pagină la alta.
  • Doriți alternativa cookie-urilor pe browserele care nu acceptă cookie-urile.
  • Doriți să stocați variabilele globale într-un mod eficient și mai sigur în comparație cu trecerea lor în adresa URL
  • Dezvoltați o aplicație precum un coș de cumpărături care trebuie să stocheze temporar informații cu o capacitate mai mare de 4KB.

Crearea unei sesiuni

Pentru a crea o sesiune, trebuie mai întâi să apelați funcția PHP session_start și apoi să vă stocați valorile în variabila matrice $ _SESSION.

Să presupunem că vrem să știm de câte ori a fost încărcată o pagină, putem folosi o sesiune pentru a face asta.

Codul de mai jos arată cum să creați și să recuperați valori din sesiuni

Ieșire:

You are visitor number 1

Distrugerea variabilelor sesiunii

Funcția session_destroy () este utilizată pentru a distruge întreaga variabilă de sesiune Php.

Dacă doriți să distrugeți doar un singur element de sesiune, utilizați funcția unset ().

Codul de mai jos ilustrează modul de utilizare a ambelor metode.

Session_destroy elimină toate datele sesiunii, inclusiv cookie-urile asociate sesiunii.

Unset eliberează doar variabilele de sesiune individuale.

Alte date rămân intacte.

rezumat

  • Cookie-urile sunt fișiere mici salvate pe computerul utilizatorului
  • Cookie-urile pot fi citite numai din domeniul emitent
  • Cookie-urile pot avea un timp de expirare, dacă nu este setat, atunci cookie-ul expiră când browserul este închis
  • Sesiunile sunt ca variabilele globale stocate pe server
  • Fiecare sesiune primește un ID de identificare unic care este utilizat pentru a urmări variabilele pentru un utilizator.
  • Atât cookie-urile, cât și sesiunile trebuie să fie pornite înainte ca etichetele HTML să fie trimise browserului.