![]() |
| |||||||
بدايتك الى الـsession الجزء الاول |
| الرئيسية | أضف درس | الجديد | الاكثر شهرة | البحث |
| بدايتك الى الـsession الجزء الاول |
| | ||||||
| ||||||
| الـ session هي عبارة عن تقنية للترابط مع المستخدم وهي موجودة ضمن الـPHP4 ولم تكن موجودة ضمن الإصدارات التي قبله بل كان يجب أن تقوم بتركيب مكتبة لكي تستطيع استخدام هذه التقنية ، يعتمد فهمنا للـsession على فهمنا للكوكيز وكيفية استعمالها ولقد تكلمنا عن الكوكيز بشكل جيد في الدرس السابق ، يستخدم الـsession لعمل ميكانيكية تواصل بين المستخدم والسيرفر ، فلقد قلنا أن الـhttp لا يوفر لنا ميكانيكية لعمل تواصل ، فإذا طلب المستخدم صفحة من السيرفر فإن السيرفر يقوم بإعطائه ما أراد وينتهي عند ذلك فلا يعرف إن كان هو نفس المستخدم أو ليس هو ... لأجل ذلك تم انشاء تقنية الـsession لأجل عمل تقنية تواصل بين المستخدم والموقع ، فبإستطاعتك مثلاً أن تقوم بتحديد عدد زيارات مستخدم معين لصفحتك ليوم واحد أو لأسبوع أو لمدة معينة من الوقت .... أو يمكنك عمل متجر إلكتروني بسيط يستطيع المستخدم شراء عدة أشياء دفعة واحدة من الموقع ويكون على تواصل بينه وبين الموقع عندما يقوم بإضافة مشترى إلي سلة التسوق أو حذف مشتريات. قبل أن أتكلم عن كيفية استخدام الـSession وإعطاء بعض الأمثلة البسيطة ، سأقوم بالتكلم عن كيفية إعداد الـsession مع الـPHP . اعدادات الـsession في الـPHP لكي تستطيع التعامل مع الـsession بشكل جيد يجب عليك أن تتعرف على بعض الإعدادات التي في ملف الـphp.ini عندما تفتح الملف ستجد قسماً خاصاً فيه بالـsession هناك حوالى 19 إعداد ولكن لن نتطرق إليها كلها بل سنتكلم عن الأساسية والمهمة منها فقط كبداية لنا للتعرف على الـsession وكيفية عمله . اعداد طريقة التخزين يجب أن تأخذ في اعتبارك عدد الملفات التي سيقوم الـsession بتخزينها عند استخدامك للأعداد الأول والإفتراضي خاصة عندما يكون عدد الزوار بالمئات أو الآلاف . قد يكون استعمال الذاكرة أسرع ولكن المشكلة أنه من السهل مسح البيانات منها ببساطة . الطريقة الثالثة قد تكون أكثر الطرق مرونة ، ولكنها معقدة وصعبة جداً ، وهي تعطيك مرونة لتخزين البيانات في أي وسائط مدعومة من قبل الـPHP مثل قواعد بيانات mysql و oracle . الذي افترضه الآن أنك قمت بوضع قيمة هذه الخاصية إلى files هذا الإعداد يقوم بتحديد إذا ما كان الـsession سيتم إنشاؤه تلقائياً عند كل زيارة للموقع أو لأي صفحة من صفحاته بدون إدراج كود الـsession في كل صفحة ... وعلى ذلك فإنك تقوم بوضع القيمة إلى (1) إذا أردت ذلك . وعلى إفتراض أنك لا تحتاج إلى أن تجعل الـPHP يقوم بعمل session لكل صفحة تلقائياً ومن غير طلب فستقوم بوضع قيمة هذا الإعداد الى (0) الـSID عندما يقوم الزائر بزيارة صفحتك فإن الـsession يستطيع تتبع هذا الزائر وعدد المرات التي قام فيه الزائر بالدخول لليوم الواحد ، يقوم الـPHP بعمل SID (session identefier) أو رقم معرف تلقائي بشكل افتراضي عندما تقوم بطلب إنشاء session بالزائر ، وكل رقم معرف يختلف عن الآخر تماماً ، إن رقم المعرف الذي ينشئه الـPHP شبيه للشكل التالى :هناك طريقتين يستطيع بها الـPHP متابعة الـSID للمستخدم : 1 - عن طريق المتابعة والتخزين بتسلسل في الكوكيز . 2 - عن طريق اتباع رقم المعرف بعنوان الصفحة في الانترنت . سنأخذ أمثلة عن كلا الطريقتين : 1 - استخدام الكوكيز بالطبع هذه هي أكثر الطرق شيوعاً للحصول على ترابط بين المستخدم والموقع وهي الأسهل ، ولكن يجب أن تضع في اعتبارك أن المستخدم قد يكون قد ألغي أو منع ميزة الكوكيز في المتصفح أو قد يكون متصفحه لا يدعم الكوكيز . خذ في اعتبارك أن بعض المتصفحات لا تسمح بأن يزيد حجم الكوكيز عن 5 كيلوبايت . هناك بعض الإعدادات البسيطة في ملف php.ini التي يجب معرفة معلومات عنها قبل البدء باستخدام الـsession مع الكوكيز : ![]() ضع في اعتبارك انه اذا كانت قيمه الاعداد (session.use_cookies) تساوي واحد فان لا داعي لاستدعاء الدالة set_cookie() لإعداد الكوكيز بل سيتم اعدادها تلقائياً بواسطة الـPHP إن إضافة عنوان الـSID إلى عنوان الصفحة يعتبر من الأشياء البشعة جداً رغم أن طريقته سهلة ومفيدة في حالة ما إذا كان الكوكيز غير مدعوم في المتصفح بشكل جيد مثال : كود PHP: بهذه الطريقة نقوم بإضافة المتغير المرجعي SID الذي سيقوم بإعطاء رقم معرف للمستخدم . متابعة الـsession لقد أخذنا حتي الآن معلومات تجعلنا ندخل عالم البرامج المسيره بالـsession بدون خوف ، سأبدأ الآن في طرح بعض الأمثلة البسيطة التي تثبت لديك بعض المفاهيم الأساسيه في الـsession ... سأشرح في هذا المثال كيفية إنشاء الـSID وتخزينه لاستعماله لاحقاً ، وخلاصة السيناريو للصفحة أننا نريد من المستخدم أن يفهم أنه يستطيع نخصيص لون الخلفية الذي يريد أن يشاهد به صفحات موقعنا ... سأقوم بتخزين قيمة مبدئية في المتغير الذي يقوم بتحديد لون الصفحة ، أنا افترض طبعاً أن المتصفح يدعم الكوكيز : سكربت يقوم بانشاء وتسجيل متغير session كود PHP: كود PHP: اقصد بالجلسة هي الـ(session) وإن كانت الترجمة غير صحيحة ولكن فقط نأخذه كمصطلح . متغير الجلسة هو الـ(session-variable) أو متغير الـsession أو سمه ما شئت . الشرح يقوم هذا السكربت في البداية بإنشاء متغير اسمه (zx) ومتغير اسمه (co) وقمنا بإعطاء القيمة (10) للمتغير (zx) وقمنا بزيادة القيمة الموجودة (وهي الصفر) في (co) بواحد وكتبنا مرحبا بك ايها الزائر الكريم في موقعنا ، ثم قلنا له إن عدد زياراتك لهذه الصفحة هي قيمة المتغير( co ) ثم اعطيناه رابط للصفحة الثانية .في الواقع إن هذه المتغيرات وقيمها يتم الاحتفاظ بها في كوكيز له اسم خاص قمنا بتحديده سابقاً من ملف PHP.ini ، وهذا الكوكيز يحتفظ بقيمة الـSID للـsession . | ||||||
| الكلمات الدليلية: | لا يوجد | |||||
| أرسل الصفحة لصديق | ||||||
| |
| جديد على الموقع؟ | تريد مساعدة؟ |