تُستخدم متغيرات جلسة PHP لتخزين معلومات حول جلسة المستخدم (الجلسة)، أو لتغيير إعدادات جلسة المستخدم (الجلسة). تقوم متغيرات الجلسة بتخزين المعلومات لمستخدم واحد وتكون متاحة لجميع الصفحات في التطبيق.
عندما تعمل على أحد التطبيقات على جهاز الكمبيوتر الخاص بك، فإنك تقوم بفتحه وإجراء تغييرات عليه ثم إغلاقه. إنها تشبه إلى حد كبير المحادثة. الكمبيوتر يعرف من أنت. فهو يعرف متى تقوم بفتح وإغلاق التطبيقات. ومع ذلك، تنشأ مشكلة على الإنترنت: نظرًا لأن عناوين HTTP لا تحافظ على حالتها، فإن خادم الويب لا يعرف من أنت وماذا تفعل.
تعمل جلسات PHP على حل هذه المشكلة عن طريق تخزين معلومات المستخدم على الخادم لاستخدامها لاحقًا (مثل اسم المستخدم والعناصر المشتراة وما إلى ذلك). ومع ذلك، فإن معلومات الجلسة مؤقتة وسيتم حذفها بعد مغادرة المستخدم للموقع. إذا كنت بحاجة إلى تخزين المعلومات بشكل دائم، يمكنك تخزين البيانات في قاعدة بيانات.
آلية عمل الجلسة هي إنشاء معرف فريد (UID) لكل زائر ومتغيرات المتجر بناءً على هذا المعرف الفريد (UID). يتم تخزين UID في ملف تعريف الارتباط أو تمريره عبر عنوان URL.
قبل أن تتمكن من تخزين معلومات المستخدم في جلسة PHP، يجب عليك أولاً بدء الجلسة.
ملاحظة: يجب وضع الدالة session_start() قبل العلامة <html>:
<?php session_start() ?><html><body></body></html>
سيقوم الكود أعلاه بتسجيل جلسة المستخدم مع الخادم حتى تتمكن من البدء في حفظ معلومات المستخدم، وسيقوم بتعيين UID لجلسة المستخدم.
الطريقة الصحيحة لتخزين واسترجاع متغيرات الجلسة هي استخدام متغير PHP $_SESSION:
<?phpsession_start();// بيانات جلسة التخزين $_SESSION['views']=1;?><html><head><meta charset="utf-8"><title>البرنامج التعليمي للمبرمج (codercto.com) < /title></head><body><?php// استرداد بيانات الجلسة echo "Views:". $_SESSION['views'];?></body></html>
الإخراج:
المشاهدات: 1
في المثال التالي، قمنا بإنشاء عداد بسيط لعرض الصفحة. تكتشف الدالة isset() ما إذا كان قد تم تعيين متغير "طرق العرض". إذا تم تعيين متغير "المشاهدات"، فإننا نزيد العداد. في حالة عدم وجود "طرق العرض"، قم بإنشاء متغير "طرق العرض" واضبطه على 1:
<?phpsession_start();if(isset($_SESSION['views'])){ $_SESSION['views']=$_SESSION['views']+1;}else{ $_SESSION['views']=1 ;}صدى "المشاهدات:". $_SESSION['المشاهدات'];?>
إذا كنت ترغب في حذف بعض بيانات الجلسة، فيمكنك استخدام الدالة unset() أو session_destroy().
يتم استخدام الدالة unset() لتحرير متغير الجلسة المحدد:
<?phpsession_start();if(isset($_SESSION['views'])){ unset($_SESSION['views']);}?>
يمكنك أيضًا تدمير الجلسة تمامًا عن طريق استدعاء الدالة session_destroy():
<?phpsession_destroy();?>
ملاحظة: سيعمل session_destroy() على إعادة تعيين الجلسة وستفقد جميع بيانات الجلسة المخزنة.