Assolomu aleykum OMUC!!!

Kirish:

Sessiya - bu bir nechta sahifalarda ishlatiladigan ma'lumotni (o'zgaruvchida) saqlash usuli.

PHP sessiyalari
PHP sessiyalari

Cookie-dan farqli o'laroq, ma'lumotlar foydalanuvchilar kompyuterida saqlanmaydi.

PHP sessiyasi nima?

Ilova bilan ishlashda siz uni ochasiz, ba'zi o'zgarishlar kiritasiz va keyin yopasiz. Bu sessiyaga o'xshaydi. Kompyuter sizning kimligingizni biladi. Ilovani qachon boshlaganingizni va qachon tugaganingizni biladi. Ammo Internetda bitta muammo bor: veb-server sizning kimligingizni va nima qilayotganingizni bilmaydi, chunki HTTP manzili holatni saqlamaydi. Sessiya o'zgaruvchilari ushbu muammoni bir nechta sahifalarda foydalanuvchi ma'lumotlarini (masalan, foydalanuvchi nomi, sevimli rang va boshqalarni) saqlash orqali hal qilishadi. Odatiy bo'lib, sessiya o'zgaruvchilari foydalanuvchi brauzerni yopguncha davom etadi. Shunday qilib; Sessiya o'zgaruvchilari bitta foydalanuvchi haqida ma'lumotga ega va bitta dasturdagi barcha sahifalar uchun mavjud. Maslahat: Agar sizga doimiy xotira kerak bo'lsa, ma'lumotlar bazasida ma'lumotlarni saqlashingiz mumkin.

PHP sessiyasini boshlash

Sessiya session_start() funksiyasi bilan boshlanadi.

Sessiya o'zgaruvchilari PHP global o'zgaruvchisi bilan o'rnatiladi: $ _SESSION.

Endi "demo_session1.php" deb nomlangan yangi sahifa yarataylik. Ushbu sahifada biz yangi PHP sessiyasini boshlaymiz va ba'zi bir sessiya o'zgaruvchilarini o'rnatamiz:

Misol

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

</body>
</html>

Eslatma: session_start() funksiyasi sizning hujjatlaringizdagi birinchi qatorda bo'lishi kerak. (HTML teglaridan oldin.)

PHP sessiyasining o'zgaruvchan qiymatlarini olish

Keyinchalik, biz "demo_session2.php" deb nomlangan yana bir sahifa yaratamiz. Ushbu sahifadan biz birinchi sahifada o'rnatgan sessiya ma'lumotlariga kiramiz ("demo_session1.php").

E'tibor bering, sessiya o'zgaruvchilari har bir yangi sahifaga alohida o'tkazilmaydi, aksincha ular har bir sahifaning boshida biz ochgan sessiyadan olinadi (session_start()). Shuni ham unutmangki, barcha sessiya o'zgaruvchilari qiymatlari global $ _SESSION o'zgaruvchisida saqlanadi:

Misol

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>

Foydalanuvchi sessiyasi uchun barcha sessiya o'zgaruvchilar qiymatlarini ko'rsatishning yana bir usuli bu quyidagi kodni ishga tushirishdir:

Misol

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>

"Bu qanday ishlaydi? Men ekanligimni qayerdan biladi?"

Aksariyat seanslar foydalanuvchi kompyuterida foydalanuvchi kalitini shunday o'rnatadi: 765487cf34ert8dede5a562e4f3a7e12. Keyin, boshqa sahifada sessiya ochilganda, u kompyuterni foydalanuvchi kalitini qidiradi. Agar mos keladigan bo'lsa, u ushbu sessiyaga kirishadi, agar bo'lmasa, u yangi seansni boshlaydi. 

PHP sessiyasining o'zgaruvchisini o'zgartirish:

Seans o'zgaruvchisini o'zgartirish uchun uni ustiga yozing:

Misol

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>

</body>
</html>

PHP sessiyasini yo'q qilish

Barcha global sessiya o'zgaruvchilarini olib tashlash va sessiyani yo'q qilish uchun session_unset() va session_destroy() dan foydalaning:

Misol

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
session_unset();

session_destroy();
?>

</body>
</html>

Foydali havola: https://www.php.net/manual/ru/book.session.php

Xulosa:

Xo'sh sizga bu maqolam ham yoqdi degan umiddaman. Hammaga omad! Siz bilan Jahongir Sobirov bo'ldi.