تستخدم متغيرات الجلسات session لحفظ المعلومات حول أو تغيير الضبط للمستخدم . تحمل متغيرات session معلومات حول مستخدم واحد كما أنها تكون متوفرة في جميع الصفحات وبتطبي واحد .
متغيرات Session
عندما تعمل على برنامج فإنك تفتحه ثم تقوم بالتعديل عليه ثم تقوم بإغلاقه . ذلك تماماً مانسميه جلسة أو session . يعلم الحاسوب من انت ويعلم متى تبدأ العمل على البرنامج ويعلم متى تنتهي من البرنامج و لكن على شبكة الانترنت هناك مشكلة صغيرة وهي أن السيرفر لايعلم من انت و لايعلم ماتفعل لأن عنوان HTTP لايحافظ على نفس الحالة .
ان PHP session تحل هذه المشكلة وذلك بالسماح لك بتخرين معلومات على السيرفر لآخر استخدام قمت به ( مثل اسم مستخدم أو عناصر التسوق ) . على أي حال تعتبر معلومات session دائمة التخزين أي يمكنك تخزين المعلومات في قاعدة البيانات .
تعمل session بإنشاء id مميز UID و ذلك لكل زائر وتخزن المتغيرات المتمركزة في هذا UID . يتم تخزين UID في cookie أو متوالد على الرابط التشعبي URL .
بدء جلسة PHP Session
قبل إمكانية تخزين معلومات المستخدم على في جلسة PHP session عندها يجب البدء أولاً بالجلسة session .
ملاحظة : يجب أن تظهر session_start() قبل وسم <html> :
<?php session_start(); ?> <html> <body> ........... </body> </html>
سيتم تسجيل المتستخدم من خلال الكود السابق مع السيرفر كما سمح لك ببدء حفظ معلومات المستخدم وتثبيت الاي دي الفريد UID لتلك جلسة المستخدم .
تخزين متغيرات الجلسات Session
أفضل طريقة لتخزين المعلومات واستردادها هو المتغير المعرّف مسبقاً من PHP وهو $_SESSION :
<?php session_start(); // store session data $_SESSION['views']=1; ?> <html> <body> <?php //retrieve session data echo "Pageviews=". $_SESSION['views']; ?> </body> </html>
ستظهر النتيجة على المتصفح
Pageviews=1
في المثال التالي قمنا بإنشاء عدّاد بسيط لإحصاء عدد مشاهدة الصفحة . يقوم isset() بفحص فيما اذا كانت المشاهدات تم مشاهدتها بالفعل واذا تمت المشاهدة من قبل سيتم زيادة رقم عدد الزيارات . اذا لم يوجد سيتم إنشاء متغير و سيتم ضبطه الى 1 :
<?php session_start(); if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo "Views=". $_SESSION['views']; ?>
حذف session
غن أردت حذف بعض البيانات في الجلسة session يمكنك استخدام unset() أو استخدام session_destroy() .
تستخدم unset() لتحرير جزء معين من متغير الجلسة :
<?php unset($_SESSION['views']); ?>
كما يمكنك أيضاً حذف الجلسة session بشكل كامل من خلال استدعاء session_destroy() :
<?php session_destroy(); ?>
سيتم حذف جميع البيانات عند استخدام session_destroy() كما سيتم حذف جميع معلومات المستخدمين المخزنة فيها .
ليست هناك تعليقات:
إرسال تعليق