PHP seanslari va cookie fayllari

P

Veb-sahifalar so'rov va javob operatsiyalarini muvaffaqiyatli bajarish uchun ma'lumotlarni vaqtincha yoki doimiy ravishda saqlashi kerak. Deyarli har bir veb-ishlab chiqish tili mijoz va server ma'lumotlarini saqlash uchun seanslar va cookie-fayllarni taqdim etadi. Bu muammosiz tajriba va xavfsizlik uchun javobgardir. Ushbu PHP qo'llanmasida siz PHP seanslari va cookie-fayllar haqida bilib olasiz. Shunday qilib, keling, unga sho'ng'in qilaylik.

PHP-da cookie-fayllar nima?

Cookie-fayllar mijozning kompyuteri xotirasidagi kichik fayllardir. Ushbu cookie-fayllar brauzerda saqlanadi va foydalanuvchi, so'rov, javob va serverga tegishli ma'lumotlarni o'z ichiga olishi mumkin. Ushbu cookie-fayllar serverga so'rov bilan birga keladi, bu esa serverga foydalanuvchini aniqlash imkonini beradi.

Shuningdek, foydalanuvchi o'zining cookie fayllarini yaratishi va ularda ma'lumotlarni saqlashi mumkin. Keyinchalik, foydalanuvchi ushbu cookie-fayllarga kirishi mumkin.

PHP da cookie faylini qanday yaratish mumkin?

PHP setcookies() usuli yangi cookie faylini yaratadi.

setcookie(name, value, expire, path, domain, secure, httponly);

PHP cookie faylining yuqoridagi umumiy sintaksisida faqat birinchi parametr talab qilinadi, ya'ni cookie nomi. Qolgan parametrlar ixtiyoriy.

setcookie("my_first_cookie","It contains string");

PHPda cookie-fayllarni va ularning qiymatini qanday olish mumkin?

Barcha cookie fayllari PHP $_COOKIE global oʻzgaruvchisida saqlanadi. Cookie va uning qiymatini olish uchun cookie nomini global oʻzgaruvchiga oʻtkazish kifoya. Misolda yaratilgan yuqoridagi cookie-faylni hisobga olsak, global miqyosda cookie-faylni olish uchun quyidagi sintaksisga qarang.

$_COOKIE["my_first_cookie"] // will return "It contains String"

PHP-da cookie-fayllarni qanday o'chirish mumkin?

Cookie uchun amal qilish muddatini belgilashingiz mumkin. Yaroqlilik muddati tugagandan so'ng, cookie avtomatik ravishda o'chiriladi. Quyidagi misolga qarang, unda biz cookie faylini yaratamiz va uning amal qilish muddatini belgilaymiz.

setcookie("my_first_cookie","It contains String", time() + (86400), "/"); // 86400 = 1 day

Yuqoridagi misolda “mening_first_cookie” cookie-faylining amal qilish muddati bir kundan keyin tugaydi. Esda tutingki, cookie-faylning amal qilish muddati soniyalar sonida bo'lishi kerak. Shuning uchun biz joriy vaqtni qaytaruvchi va bir kundagi soniyalar sonini, ya'ni 86400 qo'shadigan time() funksiyasidan foydalandik.

PHP da cookie faylini qanday yangilash mumkin?

Xuddi shu usul setcookie() yordamida cookie faylini yangilashingiz mumkin. Funksiyani kuki nomi bilan chaqirish kifoya va siz cookie faylining boshqa parametrlarini o‘rnatishingiz mumkin.

setcookie("my_first_cookie","It contains String", time() + (86400 * 2), "/"); // 86400 = 1 day

Yuqoridagi misolda biz avvalgi misolda yaratgan cookie fayli uchun setcookie() usulini chaqirdik. Aytaylik, biz cookie faylining amal qilish muddatini bir kundan ikki kunga oshirmoqchimiz. Shunchaki, amal qilish muddati parametrini o'zgartiring.

Eslatma: Cookie-fayllar o'rnatilganda, sukut bo'yicha ular so'rov yuborilayotganda URL kodlanadi va qabul qilinganda dekodlanadi. URL kodlashni o'chirish uchun setrawcookie() usulidan foydalanishingiz mumkin.

Cookie-fayllarni yangilash bilan tanish bo'lganingizdek, keling, cookie-fayllarni o'chirishning boshqa usulini beraylik, ayniqsa cookie uchun amal qilish muddati belgilanmagan bo'lsa. Shunchaki, cookie-faylning amal qilish muddatini o‘tmishga yangilang.

setcookie("my_first_cookie","", time() - 3600); // delete the cookie immediately

Brauzeringiz cookie-fayllarga ruxsat berishini tekshiringmi?

Brauzerda cookie-fayllar yoqilgan yoki yoqmaganligini tekshirishingiz mumkin bo'lgan oddiy hiyla. setcookie() usuli yordamida cookie faylini o'rnating. Biz $_COOKIE massivida barcha cookie-fayllarni saqlashini oldingi o'rganganimizdan bilamiz. Shunday qilib, ushbu massivning sonini tekshiring.

<?php
if(count($_COOKIE) > 0) {
  echo "Cookies are enabled.";
} else {
  echo "Cookies are disabled.";
}
?>

PHP seanslari

Agar siz kompyuterda bo'lsangiz va dasturdan bir muncha vaqt foydalansangiz, keyin uni yoping. Kompyuterda ilovadan foydalanuvchining yozuvi, shuningdek, ilova bilan bajarilgan harakatlar kuzatuvi bo'ladi. Biroq, veb-saytda HTTP protokoli foydalanuvchi holatini saqlamaydi.

Agar siz davom etishni va bir nechta veb-sahifalardagi qiymatga kirishni istasangiz, ushbu muammoni hal qilish uchun sessiya mavjud. Ushbu bo'limda biz qiymatlarni saqlash va ularga kirish uchun PHP seanslari bilan qanday ishlashni o'rganamiz.

Eslatma: Seans doimiy xotira emas. Seans veb-sahifani ochgandan so'ng boshlanadi va veb-saytni yopganingizda tugaydi. Ma'lumotlar bazasi doimiy saqlash uchun yechim bo'lib, biz uni PHP darsliklarining ma'lumotlar bazasi bo'limida bilib olamiz.

PHP da seansni qanday boshlash kerak?

PHP da sessiyani boshlash uchun session_start() funksiyasidan foydalaning. Ushbu funktsiya PHP skriptining yuqori qismida chaqirilishi kerakligiga ishonch hosil qiling. Keyingi qadam qiymatni sessiya global massivida saqlashdir. Seansni boshlash va undagi qiymatlarni saqlashning to'liq misolini ko'rib chiqing.

<?php
// Start the session
session_start();

// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

Global massivdan sessiya qiymatini qanday olish mumkin?

Oddiy qilib aytganda, biz cookie global massividan cookie qiymatiga kirishimiz bilan, sessiya qiymatiga kirish uchun sessiya global massividan foydalaning. Quyidagi misolga qarang.

echo "Favorite animal is " . $_SESSION["favanimal"] . ".";

Seans o'zgaruvchisini qanday yangilash mumkin?

Seans o'zgaruvchisi nomi bilan global sessiya massiviga qo'ng'iroq qiling va unga yangi qiymat bering.

$_SESSION["favcolor"] = "yellow";

Seansni olib tashlash va seansni yo'q qilish

Seansni o'chirish joriy seansda saqlangan barcha qiymatlarni o'chirishni anglatadi.

session_unset();

Seansni yo'q qilish session_start() yordamida boshlangan sessiyani to'xtatishni anglatadi.

session_destroy();

Seanslar foydalanuvchiga qarshi maxsus kalit bilan himoyalangan. Ular kompyuterda "765487cf34ert8dede5a562e4f3a7e12" kabi kalit bilan saqlanadi. Shunday qilib, sessiya veb-saytning boshqa veb-sahifasida saqlangan qiymatga kirishi kerak bo'lganda, bu kalit mijozning kompyuterida saqlangan kalit bilan mos keladi.

Php seanslari haqida toʻliq maʼlumot olish uchun tashrif buyuring Bu yerga

Fikr qo'shish

Repetitor tarmog'i

PHP tilini A dan Z gacha o'rganing