In acest tutorial, am să-ți spun ce, cookie-urile au, pe rolul și aplicarea lor.
Cookies diverse site-uri izolate unele de altele. Ele sunt o pereche de „name = valoare“. Pentru simplificare, aveți posibilitatea să le prezinte ca un fișier text ca acesta:
De fapt, fiecare browser stochează cookie-uri pe cont propriu, acum are pentru noi problema.
Serverul răspunde prin trimiterea pagina solicitată împreună cu textul care conține HTTP-răspuns. S-ar putea indica browser-ul pentru a salva cookie-uri:
Această solicitare este diferită de prima solicitare care conține șirul. care serverul trimis browser-ul mai devreme. Astfel, serverul știe că cererea este legată de cea anterioară. Serverul răspunde prin trimiterea pagina solicitată, și poate adăuga cookie-uri noi. Numărul de cookie-uri pentru un singur site nu se oprește aici.
Dar un cuplu de „name = valoare“, un cookie poate conține o dată de expirare. calea și numele de domeniu. Domeniu și o cale spune browser-ului că cookie-ul trebuie să fie trimis înapoi la server la cereri URL pentru domeniul specificat și calea. În cazul în care acestea nu sunt specificate, domeniul și calea paginii solicitate.
De fapt, cookie-urile sunt definite de trei parametri ai „calea de nume de domeniu“. Cu alte cuvinte, în diferite moduri, cookie-urile au un domeniu sau sunt diferite, chiar dacă au același nume.
Data de expirare spune browser-ului în cazul în care pentru a șterge cookie-urile. În cazul în care nu este specificată data de expirare, este eliminat, cookie-urile au la finalul sesiunii de utilizator, t. E. Odată cu închiderea browser-ului.
Data expirării este indicată în formatul "Ned, DD-MON-AAAA HH: MM: SS GMT". De exemplu:
PHP are la îndemână un set de funcții pentru lucrul cu cookie-uri. Pentru a crea cookie-uri pentru sesiune (înainte de a închide browser-ul), folosiți funcția setcookie (). De exemplu, ca aceasta:
Dacă doriți să stocați cookie-urile pentru un timp. Să presupunem, pentru o săptămână, utilizați aceeași funcție, dar cu trei parametri:
funcție de timp () returnează ora curentă. la ea se adaugă o săptămână (24 iulie 3600 de secunde). Programatorii începători poate părea ciudat la un format de timp, dar, crede-mă, este adesea mult mai ușor să lucreze cu valoare întreagă, decât cu o reprezentare șir a unei date.
Funcția setcookie () poate fi, de asemenea, invocate cu un număr mare de parametri, în cazul în care este nevoie pentru a seta alte atribute de cookie-uri. Cu toate acestea, în cele mai multe cazuri, doar două exemple menționate anterior.
Pentru a citi cookie-uri. ar trebui să profite de variabile de sistem $ _COOKIES:
Verificați. Sunt cookie-urile instalate, puteți:
Apropo, folosind un dicționar $ _COOKIES. și poate stoca valori cookie-uri, dar numai pentru sesiunea (fără a indica timpul de expirare).
protocolul HTTP este „apatrid“ și nu a construit-in capacitatea de a sprijini sesiune cu site-ul. Cu alte cuvinte, dacă nu recurg la diverse trucuri, site-ul nu „amintesc“ interacțiunile anterioare.
Imaginați-vă un magazin online. Utilizatorul selectează un produs, pune-l într-un coș, și apoi plătește. Pentru a face o achiziție, trebuie să vizitați mai multe pagini. Mai mult decât atât, site-ul trebuie să înțeleagă că acest lucru este unul și același utilizator, precum și să-și amintească bunurile pe care le-a pus în coș.
Pentru a rezolva aceste probleme este implementat în PHP mecanism de sprijin sesiune. În cazul în care este nevoie să-și amintească starea sesiunii, tot ce trebuie să faceți - este de a apela la începutul funcției script session_start ().
Această funcție verifică dacă există un ID de sesiune. Dacă nu, va fi evidențiată și va crea un fișier în care va fi posibil pentru a stoca informații relevante pentru sesiunea (de exemplu, o listă de elemente din coș).
Dar, în cazul în care să caute același ID de sesiune. PHP oferă două mecanisme:
Informații. relevant în cadrul sesiunii este stocat în variabila de sistem (dicționar) $ _SESSION. Așa cum puteți salva datele:
Și acest lucru este de a citi:
În cazul în care sesiunea nu mai este necesară, cum ar fi utilizatorul apasă butonul Exit, ar trebui să-l distrugă. Pentru acolo session_destroy () funcție în acest scop. Cu toate acestea, înainte de apelul pe care doriți să ștergeți toate datele stocate în sesiune. De exemplu, ca aceasta: