متابعة الـsession
لقد أخذنا حتي الآن معلومات تجعلنا ندخل عالم البرامج المسيره بالـsession بدون خوف ، سأبدأ الآن في طرح بعض الأمثلة البسيطة التي تثبت لديك بعض المفاهيم الأساسيه في الـsession ... سأشرح في هذا المثال كيفية إنشاء الـSID وتخزينه لاستعماله لاحقاً ، وخلاصة السيناريو للصفحة أننا نريد من المستخدم أن يفهم أنه يستطيع نخصيص لون الخلفية الذي يريد أن يشاهد به صفحات موقعنا ... سأقوم بتخزين قيمة مبدئية في المتغير الذي يقوم بتحديد لون الصفحة ، أنا افترض طبعاً أن المتصفح يدعم الكوكيز :
سكربت يقوم بانشاء وتسجيل متغير session


كود:
<?
session_start();
session_register("zx");
session_register("co");
$zx=10;
$co++;
echo 'مرحبا بك في موقعنا أيها الزائر الكريم '."<br>";


echo "عدد زياراتك لهذه الصفحة=".  $co ;
echo "<br>";
echo '<a href="php2.php">الصفحة الثانية</a>';
?>
اقصد بالجلسة هي الـ(session) وإن كانت الترجمة غير صحيحة ولكن فقط نأخذه كمصطلح .
متغير الجلسة هو الـ(session-variable) أو متغير الـsession أو سمه ما شئت .


الشرح
يقوم هذا السكربت في البداية بإنشاء متغير اسمه (zx) ومتغير اسمه (co) وقمنا بإعطاء القيمة (10) للمتغير (zx) وقمنا بزيادة القيمة الموجودة (وهي الصفر) في (co) بواحد وكتبنا مرحبا بك ايها الزائر الكريم في موقعنا ، ثم قلنا له إن عدد زياراتك لهذه الصفحة هي قيمة المتغير( co ) ثم اعطيناه رابط للصفحة الثانية .
في الواقع إن هذه المتغيرات وقيمها يتم الاحتفاظ بها في كوكيز له اسم خاص قمنا بتحديده سابقاً من ملف PHP.ini ، وهذا الكوكيز يحتفظ بقيمة الـSID للـsession .


نحن لا نقوم بإخبار الـPHP أين سيحتفظ بقيمة المتغيرات لأننا بدأنا بكلمة الـ:
session_start();
وعلى هذا فإن الـPHP سيفهم أنه سيقوم بتخزين القيمة في الكوكيز الخاص بالـsession .
قمنا بجعل المتغير co كعداد بسيط لعدد المرات التي سوف نقوم بها يزيارة الصفحة فعند عمل تحديث للصفحة سيتم زيادة العداد بمقدار واحد
$c++;
وطبعاً قبل زيادة العداد بقيمة واحد فإنه يتم حساب القيمة السابقة للمتغير عند إنشاءه تلقائياً ... ومن ثم يتم الزيادة وبعد ذلك طباعة القيمة .
كتابة رقم الـSID
اكتب الآن الكود التالي واحفظه باسم php2.php
كود:
<?
session_start();
echo $PHPSESSID ."<br>";
echo $zx;
?>
في هذه الصفحة نقوم بطباعة قيمة الـSID وذلك بطباعة قيمه المتغير $PHPSESSID (الذي هو اسم الكوكيز الخاصة بالـsession ) .
بعد ذلك قمنا في النهاية بطباعة قيمة المتغير $zx لكي ألفت نظرك بأن الكوكيز ما زال يحتفظ بها ولم يفقدها لأننا قد حددنا الإعداد في ملف php.ini الخاص بوقت الكوكيز الـ 3600 أي لمده ساعة ثم بعد تلك الساعة سيتم مسح الكوكيز ولن يمكنك استرجاع قيمة أي متغير :
session._lifetime = 3600
واضف إلى معلوماتك أنه لا يمكنك قراءة القيم للكوكيز الخاصة بالـsession إلا عن طريق إضافه الأمر
session_start();
يجب أن تبدأ بهذا الأمر دائماً إذا أردت قراءة قيم المتغيرات التي يحتفظ بها الكوكيز الخاص بالـsession .