جلسات العمل Session في PHP

جلسات العمل Session في PHP

جلسات العمل Session في PHP : ستتعلم في هذا الدرس كيفية تخزين بيانات معينة على الخادم بشكل مؤقت باستخدام جلسة PHP الآمنة Session 

جلسات العمل Session في PHP

يتم ترجمتها بـ جلسة العمل ، أو جلسة العمل الآمنة. لكن هذي من العبارات الني يحسن التعامل معها باسمها الإنجليزية (سيشن)

ما هي الـ Session : جلسات العمل Session في PHP

على الرغم من أنه يمكنك تخزين البيانات باستخدام ملفات تعريف الارتباط إلا أن فيها بعض مشكلات الأمان.

نظرًا لأنه يتم تخزين ملفات تعريف الارتباط على كمبيوتر المستخدم ، فمن الممكن أن يقوم المهاجم بتعديل محتوى ملفات تعريف الارتباط بسهولة لإدراج بيانات ضارة محتملة في التطبيق الخاص بك قد تؤدي إلى اختراق الموقع أو التطبيق الخاص بك.

أيضًا في كل مرة يطلب المتصفح فيها عنوان URL إلى الخادم ، يتم إرسال جميع بيانات ملفات تعريف الارتباط لموقع الويب تلقائيًا إلى الخادم ضمن الطلب.

هذا يعني أنه إذا قمت بتخزين 5 ملفات تعريف ارتباط على نظام المستخدم ، كل منها يبلغ حجمه 4 كيلو بايت ، يحتاج المتصفح إلى تحميل 20 كيلوبايت من البيانات في كل مرة يعرض فيها المستخدم صفحة ، مما قد يؤثر على أداء موقعك.

يمكنك حل هاتين المشكلتين باستخدام Session  في PHP.

باستخدام Session تخزن PHP البيانات على الخادم بدلاً من كمبيوتر المستخدم.

في بيئة قائمة على الـ Session  ، يتم تحديد كل مستخدم من خلال رقم فريد يسمى معرف الجلسة أو SID.

يتم استخدام معرف الجلسة الفريد هذا لربط كل مستخدم بمعلوماته الخاصة على الخادم مثل رسائل البريد الإلكتروني والمشاركات وما إلى ذلك.

نصيحة: يتم إنشاء معرّفات الجلسات بشكل عشوائي بواسطة محرك PHP الذي يكاد يكون من المستحيل تخمينه.

علاوة على ذلك ، نظرًا لتخزين بيانات الجلسة على الخادم ، فلا يلزم إرسالها مع كل طلب متصفح.

تسجيل Session  في PHP

قبل أن تتمكن من تخزين أي معلومات في متغيرات جلسة العمل ، يجب عليك أولاً بدء الجلسة.

لبدء جلسة جديدة ، ما عليك سوى استدعاء وظيفة session_start () في PHP

سنقوم بإنشاء جلسة جديدة وإنشاء معرف جلسة فريد للمستخدم.

شفرة PHP في المثال التالي توضح كيفية بدء جلسة عمل جديدة Session ببساطة.

ملاحظة: يجب عليك استدعاء الدالة session_start في أول سطر من بداية الصفحة ، أي قبل أي نص يتم إنشاؤه بواسطة البرنامج النصي في المستعرض ، مثلما تفعل تمامًا أثناء إعداد ملفات تعريف الارتباط مع وظيفة setcookie.


تخزين بيانات الجلسة والوصول إليها

يمكنك تخزين جميع بيانات الجلسات كمجموعة قيم رئيسية في متغير الخادم $_SESSION[]  .

يمكن الوصول إلى البيانات المخزنة خلال الجلسة.

الكود التالي ينشئ جلسة عمل جديدة ويسجل اثنين من متغيرات جلسة العمل.

وللوصول إلى بيانات الجلسة التي قمنا بتعيينها على المثال السابق من أي صفحة أخرى على نفس نطاق الويب –

نقوم ببساطة بإعادة إنشاء الجلسة عن طريق استدعاء الدالة session_start

ثم تمرير المفتاح المقابل إلى المصفوفة المترابطة في المتغير $ _SESSION.

شفرة PHP البرمجية في المثال أعلاه تعطي الإخراج التالي.

Hi, Peter Parker
ملاحظة: للوصول إلى بيانات الجلسة في نفس الصفحة ، لن تحتاج إلى إعادة استدعاء الدالة session_start نظرًا لأنها قد بدأت بالفعل في أعلى الصفحة.

تدكير جلسة العمل

إذا كنت تريد إزالة بعض البيانات في جلسة العمل مع المحافظة على الجلسة ويقية البيانات فيها، فما عليك سوى إلغاء تعيين المفتاح المقابل لاسم القيمة في المصفوفة المضمنة في المتغير باستخدام دالة unset ومتغيلر $ _SESSION ، كما هو موضح في المثال التالي:

لكن ، لتدمير الجلسة بالكامل ، فإن الطريقة ببساطة استدعاء الدالة session_destroy

هذه الوظيفة لا تحتاج إلى أي وسيطة و بمجرد استدعائها تدمر كل بيانات الجلسة.

ملاحظة: قبل تدمير جلسة عمل مع الدالة session_destroy ، يفضل أولاً إعادة استدعاء دالة session_start  إذا لم تكن متأكد من أنها موجودة بالفعل  ، بحيث يكون هناك شيء ما لتدميره.

لكل جلسة عمل في PHP قيمة تحدد وقت انتهاء المهلة – وهي المدة التي يتم قياسها بالثواني – والتي تحدد المدة التي يجب أن تبقى فيها الجلسة على قيد الحياة في غياب أي نشاط للمستخدم.

يمكنك ضبط مدة المهلة هذه عن طريق تغيير قيمة المتغير session.gc_maxlifetime في ملف تكوين (php.ini) في PHP .

الكاتب