Brauzer cookie fayllari


Cookie’lar veb-sahifalarda foydalanuvchi ma’lumotlarini saqlash imkonini beradi.


ULASHISH

Cookie’lar nima?

Cookie fayllari kompyuteringizda kichik matnli fayllarda saqlanadigan ma’lumotlardir.

Veb-server veb-sahifani brauzerga yuborganida, ulanish o‘chiriladi va server foydalanuvchi haqida hamma narsani unutadi.

Cookie fayllari "foydalanuvchi haqidagi ma’lumotni qanday eslab qolish" muammosini hal qilish uchun ixtiro qilingan:

  • Foydalanuvchi veb-sahifaga tashrif buyurganida, uning ismi cookie faylida saqlanishi mumkin.
  • Keyingi safar foydalanuvchi sahifaga tashrif buyurganida, cookie fayli uning ismini “eslab qoladi”.

Cookie fayllari nom-qiymat juftliklarida saqlanadi:

username = John Doe

Brauzer serverdan veb-sahifani so‘raganda, sahifaga tegishli cookie-fayllar so‘rovga qo‘shiladi. Shunday qilib, server foydalanuvchilar haqidagi ma’lumotlarni "eslab qolish" uchun kerakli ma’lumotlarni oladi.

Agar brauzeringizda mahalliy cookie-fayllarni qo‘llab-quvvatlash o‘chirilgan bo‘lsa, quyidagi misollarning hech biri ishlamaydi.


JavaScript bilan cookie yaratish

JavaScript document.cookie yordamida cookie-fayllarni yaratishi, o‘qishi va o‘chirishi mumkin xususiyat.

JavaScript yordamida cookie quyidagi tarzda yaratilishi mumkin:

document.cookie = "username=John Doe";

Yaroqlilik muddatini ham qo‘shishingiz mumkin (UTC vaqti). Sukut bo‘yicha, brauzer yopilganda cookie o‘chiriladi:

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";

Yo‘l parametri yordamida siz brauzerga cookie fayli qaysi yo‘lga tegishli ekanligini aytishingiz mumkin. Odatiy bo‘lib, cookie joriy sahifaga tegishli.

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";


JavaScript bilan cookie’ni o‘qish

JavaScript yordamida cookie-fayllarni quyidagicha o‘qish mumkin:

let x = document.cookie;

document.cookie barcha cookie-fayllarni bitta string sifatida qaytaradi: cookie1=value; cookie2=qiymat; cookie3=qiymat;


JavaScript bilan cookie’ni o‘zgartirish

JavaScript yordamida siz cookie-faylni xuddi uni yaratganingizdek o‘zgartirishingiz mumkin:

document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

Eski cookie qayta yoziladi.


JavaScript bilan cookie’ni o‘chirish

Cookie’ni o‘chirish juda oson.

Cookie-faylni o‘chirishda cookie qiymatini belgilashingiz shart emas.

Faqat muddati tugash parametrini o‘tgan sanaga o‘rnating:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

To‘g‘ri cookie-faylni o‘chirib tashlashingizga ishonch hosil qilish uchun cookie yo‘lini belgilashingiz kerak.

Agar yo‘lni ko‘rsatmasangiz, ba’zi brauzerlar cookie-fayllarni o‘chirishga ruxsat bermaydi.


Cookie stringi

document.cookie xossasi oddiy matn stringiga o‘xshaydi. Lekin unday emas.

Agar siz document.cookie-ga butun cookie-fayllar stringini yozsangiz ham, uni qayta o‘qiganingizda, uning faqat nom-qiymat juftligini ko‘rishingiz mumkin.

Agar siz yangi cookie-faylni o‘rnatsangiz, eski cookie-fayllar ustiga yozilmaydi. Yangi cookie document.cookie-ga qo‘shiladi, shuning uchun agar siz document.cookie-ni qayta o‘qisangiz, quyidagi kabi narsalarni olasiz:

cookie1 = value; cookie2 = value;

     

Agar siz bitta belgilangan cookie qiymatini topmoqchi bo‘lsangiz, cookie-fayllar stringida cookie qiymatini qidiradigan JavaScript funksiyasini yozishingiz kerak.


JavaScript cookie misoli

Quyidagi misolda biz tashrif buyuruvchining ismini saqlaydigan cookie faylini yaratamiz.

Mehmon veb-sahifaga birinchi marta kelganida, undan o‘z ismini to‘ldirish so‘raladi. Keyin nom cookie faylida saqlanadi.

Keyingi safar tashrif buyuruvchi o‘sha sahifaga kelganida, u salomlash xabarini oladi.

Misol uchun biz 3 ta JavaScript funksiyasini yaratamiz:

  1. Cookie qiymatini o‘rnatish uchun funksiya
  2. Cookie qiymatini olish uchun funksiya
  3. Cookie qiymatini tekshirish uchun funksiya

Cookie o‘rnatish funksiyasi

Birinchidan, biz tashrif buyuruvchining ismini cookie o‘zgaruvchisida saqlaydigan function yaratamiz:

Misol

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  let expires = "expires="+ d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

Misol tushuntirilishi:

Yuqoridagi funksiyaning parametrlari: cookie nomi (cname), cookie qiymati (cvalue) va cookie muddati tugashigacha bo‘lgan kunlar soni (exdays).

Funksiya cookie nomini, cookie qiymatini va amal qilish muddati stringini qo‘shish orqali cookie faylini o‘rnatadi.


Cookie olish funksiyasi

Keyin, belgilangan cookie qiymatini qaytaradigan function yaratamiz:

Misol

function getCookie(cname) {
  let name = cname + "=";
  let decodedCookie = decodeURIComponent(document.cookie);
  let ca = decodedCookie.split(';');
  for(let i = 0; i <ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

Function explained:

Cookie nomini parametr sifatida qabul qiling (cname).

Izlash uchun matn bilan o‘zgaruvchini (ism) yarating (cname + "=").

Cookie-fayllarni maxsus belgilar bilan ishlash uchun, masalan, kukilar stringini dekodlash. '$'

document.cookie’ni nuqtali vergullar bo‘yicha ca nomli massivga ajrating (ca = decodedCookie.split(';')).

Ca Array bo‘ylab aylantiring (i = 0; i < ca.length; i++) va har bir qiymatni o‘qing c = ca[i]).

Agar cookie topilsa (c.indexOf(name) == 0), cookie qiymatini qaytaring (c.substring(name.length, c.length).

Agar cookie topilmasa, "" qaytaring.


Cookie tekshirish funksiyasi

Nihoyat, biz cookie fayli o‘rnatilgan yoki yo‘qligini tekshiradigan funksiyani yaratamiz.

Agar cookie o‘rnatilgan bo‘lsa, u salomlashishni ko‘rsatadi.

Agar cookie o‘rnatilmagan bo‘lsa, u foydalanuvchi nomini so‘rab, so‘rov oynasini ko‘rsatadi, setCookie funksiyasini chaqirish orqali foydalanuvchi nomi cookie faylini 365 kun davomida saqlaydi:

Misol

function checkCookie() {
  let username = getCookie("username");
  if (username != "") {
   alert("Welcome again " + username);
  } else {
    username = prompt("Please enter your name:", "");
    if (username != "" && username != null) {
      setCookie("username", username, 365);
    }
  }
}

Endi hammasi birgalikda

Misol

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  let expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
  let name = cname + "=";
  let ca = document.cookie.split(';');
  for(let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

function checkCookie() {
  let user = getCookie("username");
  if (user != "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user != "" && user != null) {
      setCookie("username", user, 365);
    }
  }
}
O‘zingiz sinab ko‘ring »

Yuqoridagi misol sahifa yuklanganda checkCookie() funksiyasini ishga tushiradi.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!