• php
  • 2055
  • 20-3-2008
  • هناك مشكلة كبيره في لغة HTML وذلك لانها لا تستطيع تحديد حالة المستخدم, ونعني بذلك انها لا تستطيع تتبع المستخدم من صفحه الى اخرى, هل تحتاج الى مثال ؟ فمثلا لو قام المستخدم بتنفيذ طلب اظهار صفحه ما, ثم طلب اظهار صفحه اخرى, فلا يمكن للغة HTML معرفة اذا كان الطلب تم من نفس المستخدم..... متطلبات قبل البدأ : مراجعة جميع الدروس السابقه اهداف الدرس: تعريف الجلسات الكوكيز ( Cookies ) انشاء الجلسات بشكل مبسط مثال مبسط على الجلسات -------------------------------------------------------------------------------- تعريف الجلسات : هناك مشكلة كبيره في لغة HTML وذلك لانها لا تستطيع تحديد حالة المستخدم, ونعني بذلك انها لا تستطيع تتبع المستخدم من صفحه الى اخرى, هل تحتاج الى مثال ؟ فمثلا لو قام المستخدم بتنفيذ طلب اظهار صفحه ما, ثم طلب اظهار صفحه اخرى, فلا يمكن للغة HTML معرفة اذا كان الطلب تم من نفس المستخدم. وجدت الجلسات ليتم تتبع حالة المستخدم اثناء تصفحه لموقع معين. فإذا استطعنا ذلك, يمكننا عمل تسجيل دخول المستخدم واظهار بعض محتويات الصفحه على حسب درجته ومستوى تحكمه في الموقع. في لغة PHP الجلسه الواحده عباره عن رقم ( مشفر ) يتم انشاءه بطريقة عشوائيه, ويحفظ هذا الرقم عند المستخدم ( وليس السيرفر ) على طريقتين, اما في الجهاز على شكل كوكيز او على شكل رقم ينتقل من صفحه الى اخرى. هذا الرقم يقوم بالسماح لنا بتسجيل متغيرات اسمها متغيرات الجلسات ومحتويات هذه المتغيرات يتم تخزينها في جهة السيرفر ( وليس على جهاز المستخدم ) والذي يظهر للمستخدم فقط ويمكن رؤيته من قبله هو هذا الرقم العشوائي المستحيل ان يتم فهمه. هل فهمت الجلسات الى الان ؟ انا متأكد انك قمت بملاحظة هذا الرقم عند تصفحك لاحدى المواقع ويكون شكل هذا الرقم كالتالي :
    image
    الكوكيز ( Cookies ) : الكوكيز او ما يسمى باللغه العربيه ( الكعكات ) وهو اسم لا احب اطلاقه على الكويكز, عباره عن قطعه معلومات تحفظ في جهاز المستخدم ويستطيع الوصول لها فقط من قام بإنشائها ( الموقع ). دعني اختصر لك الامر لا تستخدم الكوكيز ! وهذا الذي سوف تتعلمه عند قرائة اي كتاب او اي درس عن الامان في الانترنت. حيث ان اكثر المتصفحات الجديده ومستويات الامان الموجوده بها تمنع الموقع من وضع اي معلومات في جهاز المستخدم, او على سبيل المثال المستخدم قد قام بإلغاء الكوكيز في جهازه, وحينها لن يستطيع الحصول على المراد وصاحب الموقع لن يحصل على مراده. اذن لنجلعها بكل بساطه ( لا تقم بإستخدام الكويكز في برامجك ) ! انشاء الجلسات بشكل مبسط : سوف يكون محور درسنا عن الجلسات هو ارسال رقم الجلسه من صفحه الى اخرى وتتبع المستخدم بهذه الطريقه. رأينا في المثال بالاعلى ان رقم الجلسه موجود في المتصفح, فكر للحظات هل هذه طريقه جيده لارسال المعلومات ؟ بحيث انها ظاهره للمستخدم و ايشخص اخرى, طبعا لا ! اذن نحتاج ان نقوم بإرسال هذه المعلومات بطريقه مخفيه بحيث ان برنامج هو الوحيد الذي يستطيع استعمالها. هذه الطريقه تبدأ من لحظة دخول المستخدم الى الموقع وانشاء رقم الجلسه الخاص به, وينتهي بمجرد اغلاق المستخدم للصفحه, حيث يتم تدمير هذه الجلسه. لنقم بجعلها مبسطه وعلى شكل خطوات: بدأ الجلسه تسجيل متغير الجلسه استخدام متغير الجلسه الغاء متغير الجلسه وتدمير الجلسه ليس بالضروره ان تكون جميع هذه الخطوات في صفحه برمجيه واحده, ويمكن ان تكون على عدة صفحات, لا تنسى ذلك ! بدأ الجلسه يجب علينا ان نقوم بتفعيل ( بدأ ) الجلسات قبل عمل اي شي في الصفحه ويمكن فعل ذلك عن بالطريقه التاليه :
    image
    هذه الداله تقوم بالتحقق هل يوجد جلسه لهذا المستخدم ؟ اذا لا توجد جلسه تقوم بإنشاء جلسه خاصه بهذا المستخدم, فلو على سبيل المثال احمد قام بالدخول على الموقع فسوف يكون له جلسه خاصه به , ولو دخل خالد الموقع في نفس الوقت فسوف يكون له رقم اخر خاص به وهكذا. اما اذا كانت هناك جلسه خاصه بالمستخدم فسوف تقوم هذه الداله برفع المتغيرات التي تحويها هذه الجلسه لكي يتمكن لنا استعمالها في برنامجنا, ويجب عليك التذكر ان بدأ الجلسات في كل برامجك هو طريقه جيده بل ممتازه اذا كان برنامجك يعتمد على الجلسات. تسجيل متغير الجلسه هل تذكر المصفوفه $_GET والمصفوفه $_POST والمصفوفه $_SERVER سوف نتعلم الان مصفوفه جديده واسمها $_SESSION وهذه المصفوفه تقوم بتخزين كل المتغيرات بها. فلو اردنا ان نقوم بإنشاء متغير جلسه اسمه ( الاسم ) ونضع به القيمه 5 سوف نقوم بالتالي :
    image
    استخدام متغير الجلسه لكي يمكنك استخدام متغير جلسه يجب علينا في البدايه بدأ الجلسه ثم استخدام المتغير عن طريق المصفوفه بالطريقه التاليه :
    image
    نفس الطرق التي تعلمناها في السابق, لا تخف من الجلسات فهي اسهل من السهوله. و اذا اردت التحقق من وجود متغير الجلسه ام لا , فسوف تعرف ذلك؟ ولتذكيرك تستخدم الطريقه isset او صديقتها empty كما تعلمنا مسبقا كالتالي:
    image
    الغاء متغير الجلسه و تدمير الجلسه عند الانتهاء من استعمال متغير جلسه ما, يمكنك الغاء تسجيله بالطريقه التاليه :
    image
    والان بعد ان قمنا بإلغاء هذا المتغير نريد ان نقوم بتدمير الجلسه كامله لكي نقوم بالتنظيف, ويمكن عملها كالتالي:
    image
    مثال مبسط على الجلسات : اعتقد انك تشعر بغرابه الان, هل هذه هي فقط الجلسات !! نعم عزيزي, هذه هي الجلسات ويمكن ان كلامي المبسط عنها لم يوضح الفكره, لنقم الان بعمل مثال يشرح لنا طريقة عمل الجلسات لكي توضح لك الصوره. سوف نقوم بإنشاء 3 صفحات وتتبع الجلسات بها. في الصفحه الاولى ( ses1.php ) سوف نقوم ببدأ الجلسه , وتسجيل متغير اسمه example لاحظ التالي :
    image
    و سوف يكون نتيجة الصفحه الاولى هو التالي :
    image
    لاحظ اننا بدأنا الجلسه ثم انشأنا المتغير , وعند انتهاء اسطرنا في البرنامج سوف تكون الجلسه في حالة تجميد الى ان نقوم ببدأ الجلسه في الصفحه التاليه. الان ننشئ صفحه جديده اسمها ( ses2.php ) وسوف يكون محتواها هو التالي :
    image
    لو تلاحظ اننا بدأنا الجلسه في بداية الصفحه لكي نقوم بتحميل جميع المتغيرات ثم طبعنا محتوى متغير الجلسه واخيرا قمنا بإلغاء متغير الجلسه. دقق في الصفحه وسوف ترى اننا لم ننشئ متغير جديد ولكن نفس المتغير الذي انشأناه في الصفحه الاولى انتقل الى الصفحه الثانيه. وسوف يكون ناتج هذه الصفحه هو التالي:
    image
    في الصفحه الاخير نقوم بنفس العمل ولكن عند طباعة المتغير لن نجد اي قيمه لأننا قمنا بإلغاء المتغير في الصفحه رقم ( 2 ) اليس كذلك ؟ اذن الصفحه ( ses3.php ) سوف تحوي الكود التالي:
    image
    عند عمل هذا الكود لن يقوم بطباعة محتوى المتغير لاننا الغيناه من قبل وسوف نقوم في الاخير بتدمير الجلسه كاملا, ولو حاولت ان تقوم بالدخول على الصفحه ( ses2.php ) من غير الدخول على الصفحه ( ses1.php ) فلن يوجد اي شيئ بالمتغير وهذا يؤكد لنا اننا نتابع المستخدم من صفحه الى اخرى.
    image
    ملاحظه ( ضروري, ضروري, ضروري ان تقوم ببدأ الجلسه قبل ان تقوم بطباعة اي شيئ الى المتصفح والا لن يقوم برنامج بالعمل بشكل صحيح, دائما ابدأ الجلسه ثم اكتب الكود المتبقي )
    سؤال على الدرس : 1 - حاول ان تقوم بعمل نظام تسجيل يعتمد على الجلسات, فقط قم بمحاولات لكي تستعد للدرس القادم
    الـــدرس الــقادم : سوف نقوم في الدرس القادم بعمل مثال تطبيقي ( نظام تسجيل ) بإستخدام الجلسات
    عدد المقيّمين 1 إجمالي التقييمات 5
    12345