Har bir sayt foydalanuvchini tanib olish yoki ma’lumotlarini vaqtincha saqlashga muhtoj bo‘ladi. Masalan, foydalanuvchi tizimga kirgandan so‘ng uni boshqa sahifalarda ham eslab qolish kerak. Buning uchun PHP’da ikkita asosiy vosita mavjud: Session va Cookie. Ushbu maqolada ularning farqi, ishlash tamoyili va amaliy misollarini ko‘rib chiqamiz.
1. Session nima?
Session — bu foydalanuvchi bilan server o‘rtasidagi vaqtinchalik ma’lumot saqlash mexanizmi. Ma’lumot serverda saqlanadi, foydalanuvchida esa faqat Session ID bo‘ladi. Bu usul xavfsiz, chunki foydalanuvchi ma’lumotni to‘g‘ridan-to‘g‘ri o‘zgartira olmaydi.
Session’dan foydalanish uchun sahifaning boshida quyidagi kod yoziladi:
session_start(); $_SESSION['ism'] = 'Ali'; echo "Salom, " . $_SESSION['ism'];
Bu kod session_start() funksiyasi orqali sessiyani ishga tushiradi va foydalanuvchi nomini saqlaydi. Endi istalgan boshqa PHP sahifada session_start() yozilsa, bu ma’lumotdan foydalanish mumkin bo‘ladi.
session_start(); echo "Qaytganingizdan xursandmiz, " . $_SESSION['ism'];
Natijada foydalanuvchining ismi sahifadan sahifaga o‘tishda eslab qoladi.
2. Session’ni o‘chirish
Foydalanuvchi tizimdan chiqqanda sessiyani tozalash kerak. Buning uchun:
session_start(); session_unset(); session_destroy(); echo "Sessiya tugatildi!";
session_unset() barcha session o‘zgaruvchilarni o‘chiradi, session_destroy() esa sessiyaning o‘zini yopadi.
3. Cookie nima?
Cookie — bu foydalanuvchi brauzerida saqlanadigan kichik ma’lumot bo‘lagi. U orqali foydalanuvchi saytda qayta kirganda avtomatik tanilishi yoki ma’lumotlari qayta tiklanishi mumkin.
Cookie yaratish juda oson:
setcookie("foydalanuvchi", "Ali", time() + 3600, "/"); echo "Cookie o‘rnatildi!";
Bu kod “foydalanuvchi” nomli cookie yaratadi va uni 1 soat davomida saqlaydi. time() + 3600 — bu cookie amal qilish muddati (1 soat). "/" esa cookie butun sayt bo‘ylab amal qilishini bildiradi.
4. Cookie o‘qish va o‘chirish
Cookie o‘qish uchun quyidagicha yoziladi:
if (isset($_COOKIE['foydalanuvchi'])) { echo "Xush kelibsiz, " . $_COOKIE['foydalanuvchi']; } else { echo "Cookie topilmadi!"; }
Cookie o‘chirish uchun uni muddati o‘tgan qilib belgilash kerak:
setcookie("foydalanuvchi", "", time() - 3600, "/"); echo "Cookie o‘chirildi!";
5. Session va Cookie o‘rtasidagi farq
| Asosiy farq | Session | Cookie |
|---|---|---|
| Ma’lumot saqlanadigan joy | Serverda | Foydalanuvchi brauzerida |
| Xavfsizlik darajasi | Yuqori | Pastroq |
| Hajm chegarasi | Cheksiz (server resurslariga bog‘liq) | 4 KB atrofida |
| Foydalanish muddati | Brauzer yopilganda tugaydi | Berilgan vaqtgacha saqlanadi |
6. Amaliy misol: Avtorizatsiya tizimi
Masalan, foydalanuvchi tizimga kirganda sessiya va cookie ni birgalikda ishlatish mumkin:
session_start(); if ($_POST['login'] == 'admin' && $_POST['parol'] == '1234') { $_SESSION['user'] = 'admin'; setcookie('user', 'admin', time() + 3600, '/'); echo "Xush kelibsiz, admin!"; } else { echo "Login yoki parol xato!"; }
Endi foydalanuvchi tizimga kirganidan so‘ng, sayt uning sessiyasini eslab qoladi. Agar cookie ham mavjud bo‘lsa, foydalanuvchi saytga keyingi tashrifida avtomatik aniqlanadi.
7. Xulosa
Session va Cookie — PHP’da foydalanuvchi ma’lumotlarini vaqtincha yoki uzoq muddatli saqlash uchun ishlatiladigan qulay vositalardir. Session xavfsizroq, chunki ma’lumot serverda saqlanadi. Cookie esa foydalanuvchini eslab qolish uchun foydalidir. To‘g‘ri yondashuv orqali ikkalasini birlashtirib, foydalanuvchi uchun qulay va xavfsiz tizim yaratish mumkin.

Комментариев нет