Un cookie este soluția la una dintre problemele eficace legate de specificația http. Această problemă constă în conexiunea inconsistentă dintre client și server, ca și în cazul sesiunii ftp sau telnet, adică Pentru fiecare document (sau fișier), se trimite o cerere separată atunci când este trimis protocolul HTTP. Includerea unui cookie în protocolul http a oferit o soluție parțială la această problemă.
Un cookie este o mică informație pe care serverul o trimite clientului. Clientul (browserul) va stoca aceste informații și le va transmite serverului cu fiecare cerere ca parte a antetului http. Unele module cookie sunt stocate numai pentru o singură sesiune, acestea fiind șterse după închiderea browserului. Altele care sunt setate pentru o perioadă de timp sunt scrise într-un fișier. De obicei, acest fișier este numit "cookie.txt".
Ce pot face cu un cookie?
Ce browsere acceptă cookie-urile?
Nu toate, desigur, dar cel mai popular sprijin. Știu sigur că netscape (începând cu prima versiune), microsoft ie (treshka și patru - cu siguranță, nu știu despre cele anterioare), mozaic
Configurarea cookie-urilor.
Modul de expunere a cookie-urilor la client depinde de modul în care vor fi folosite în viitor. Acest lucru se poate face atât cu scripturi, cât și cu html meta-tag-uri. Puteți să manipulați durata de viață a modulelor cookie pe care le-ați setat și să setați locul în care sunt valabile setările. Formatul general al instalării este: set-cookie: name = value; expiră = data; domeniu = nume_domeniu; calea = calea; sigur
Setarea cookie-urilor cu html.
Cea mai ușoară modalitate de a seta un modul cookie este să utilizați eticheta meta corespunzătoare în antetul oricărui document html static.
Configurarea cookie-urilor folosind perl / cgi.
Un alt mod de a seta un cookie este cu un script de server. Pe perl, acesta va arata cam asa: înainte de a emite un raspuns server, header-ul http este generat
Pentru a citi valoarea cookie setată anterior și pentru a executa scriptul în mod corespunzător, scriptul folosește variabila de mediu http_cookie. Pe perl va arata astfel:
Setați mai multe cookie-uri în același timp.
Atât cu html, cât și cu scripturi, puteți seta simultan mai multe cookie-uri:
cookie-uri în php
Luați în considerare cel mai simplu exemplu - instalarea pe calculatoarele utilizatorului se face cu informații despre faptul dacă se afla pe această pagină sau nu. Acest lucru se face astfel:
După aceasta, aveți un cookie c pe disc cu informații pe care le-ați vizitat deja această pagină. Cât va dura cookie-ul? Din moment ce am folosit doar doi parametri și l-am lăsat inuți pe ceilalți parametri, s-au setat valori standard: funcționează până când toate ferestrele browserului sunt închise, în domeniul scriptului instalat, pe o conexiune neprotejată. Și dacă vrem să numărăm câte vizite au avut loc pe parcursul anului? Cum pot seta aceste valori? Folosim setcookie completă de sintaxă:
După cum puteți vedea, putem specifica nu numai numele cookie și o valoare, dar, de asemenea, durata (expiră - în secunde din anul 1970), calea (implicit este „/“), domeniu ( „domen.ustanovivshego.kuki. script „) și sekyurnost (0), adică De asemenea, domeniul de aplicare al cookie.
Există o limită a numărului de domenii cookie (20 bucăți), astfel încât de fapt stocate în matrice cookie, și putem într-un coc pentru a păstra numele de utilizator și numărul vizitelor sale la pagina (utilizați doar cookie-ul ca o matrice). Luați în considerare script - utilizator Contorizarea vizite.
După cum puteți vedea, mai întâi vom verifica dacă există deja pe computerul cookie al utilizatorului numit „conta“, iar dacă nu este, noi credem că un utilizator este de la pagina 0 ori. Accesul la informațiile din cookie pot fi obținute în două moduri: în primul rând, în cazul în care este instalat în register_globals php.ini setarea, creează automat un număr de $ variabilă, în al doilea rând, valoarea este adăugată la matrice $ http_cookie_vars. Este mai corect de a utiliza a doua metodă, deoarece php îi place să creeze variabile, iar în acest caz, nu știm - dacă aceasta rasa este variabilă, ca urmare a transferului de date către script-ul în QUERY_STRING, prin metoda poștă sau printr-un cookie. În plus, cele mai recente versiuni de php (4.2) Funcția de register_globals implicit este oprit, deci este, în general, doar o modalitate de a obține informații.
Următorul pas este să adăugați unul la contor. Logic - utilizatorul a mers la toate paginile? Prin urmare, a crescut numărul de vizite pe unitate. Apoi (înainte de a emite inscripții) trebuie să setăm un cookie cu noile informații, ora curentă. Pentru a obține timpul în secunde din 1970, se folosește funcția time (), la care adăugăm timpul dorit (3600 secunde). Trebuie remarcat faptul că timpul este setat în fusul orar al utilizatorului, astfel încât să poată dovedi cu ușurință că durata de viață a cookie-lui a expirat. Cu asta trebuie să ne luptăm!
Și numai după ce am setat cookie-ul, putem începe să arătăm ceva utilizatorului, ceea ce facem, imprimând numărul de vizite pe această pagină.
Atenție vă rog! modulele cookie pot fi configurate numai pentru orice tip de emitere de text! Asigurați-vă că nu există instrucțiuni de imprimare înainte de a utiliza setcookie. Mesajele de eroare ne răsfoiesc, de asemenea, instalarea cookie-urilor. Întreaga problemă este că informațiile despre cookie se referă la zona de antet, iar ceea ce produce imprimarea nu este.
Dar nu trebuie doar să adăugăm cookie-uri, ci și să le eliminăm. Acest lucru se face prin aceeași setcookie funcție lungă de suferință, numai de data aceasta îl numim cu un singur parametru - cookie-ul de nume: