الأحد، 12 أغسطس 2012
11:27 م

وضع شرط تحقق بدأ الجلسة، واستخدام مصفوفة الجلسات

بسم الله الرحمن الرحيم،
حسنًا، العنوان غير واضح أعلم ذلك، ولكن سأشرح لكم شيئًا بسيطًا، جاء هذا السؤال لى.
السائل:
         قمت ببرمجة ملف header.php به الجزء الأعلى من الموقع، وبداخله قمت بعمل إستدعاء لملف Login.html والذي يوجد به نموذج تسجيل دخول بسيط بلغة html، وقمت بمتابعة هذا الدرس، ولكن عند تحديث الصفحة بعد بدء الجلسة يوجد نموذج تسجيل الدخول أيضًا، فما طريقة وضع شرط عند تسجيل الدخول يتم إلغاء إستدعاء نموذج تسجيل الدخول وإستبداله برسالة ترحيبية بها اسم المستخدم؟
الإجابة:
        حسنًا، والآن بعد أن فهمنا المشكلة، نستطيع الآن حلها ببساطة، لكن يجب عليك أن تتأكد من أنك قد قمت بمشاهدة هذا الدرس يمكنك الدخول فى هذا الدرس، والآن اتبع الدرس.
فى الجزأ الخاص ببدء الجلسة، وهو الشرط الذي قمت بكتابة فيه تلك الدالة
session_start();
بعد تلك الدالة ستقوم بأخذ بعض المتغيرات ووضعها فى مصفوفة الجلسة، فمثلاً إذا كان لدينا متغير باسم username ومتغير آخر باسم password ، نستطيع إدراك تلك المتغيرات فى مصفوفة الجلسة عبر تحديد Key بأي اسم فى مصفوفة الجلسة، ومن ثم إسناد قيمة المتغير فى هذا الـKey، أى أننا سنقوم بالتالى:

بدء الجلسة.
حجز Key فى مصفوفة الجلسة واسناد قيمة المتغير username بها.
حجز Key فى مصفوفة الجلسة واسناد قيمة المتغير password بها.
وضع شرط فى ملف header.php للتحقق ما إذا كانت الجلسة بدأت أم لا، عبر التحقق من إن كان يوجد Key بالاسم الذي حجزناه مسبقًا للـusername أو للـpassword.
أعلم بوجود بعض الغموض خصوصًا بالنسبة للمبتدئين، والآن سنبدأ فى التطبيق العملي للتوضيح.
سنقوم بفتح ملف header.php ونصل إلى مكان تحقق شرط بدأ الجلسة كما رأينا فى هذا الدرس، وهو المكان الموجود به تلك الدالة session_start()، سنقوم بالكتابة أسفله كالتالى:

session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
حيث أننا قمنا بحجز Key فى مصفوفة الجلسة SESSION باسم username ، وقمنا بإسناد قيمة المتغير $username وهو المتغير الذي يحتوى على اسم المستخدم الذي تم تسجيل الدخول به كما تم الشرح فى الدرس السابق ذكره، وكذلك فعلنا مع كلمة المرور.
والآن لنصل إلى الشيفرة التى تقوم بإستدعاء ملف login.html والتى بها نموذج تسجيل الدخول، وسنقوم بإستبدالها بالشيفرة التالية:

if(isset($_SESSION['username']){
echo "Welcome ".$_SESSION['username'];
}else{
include "login.html";
}
ففى السطر الأول قمنا بالتحقق من إذا ما كان الـKey الذي قمنا بحجزه موجود أم لا، فإن كان موجود فهذا يعنى أن الجلسة قد بدأت بالفعل وبشكل صحيح، وعندها سيقوم بإدراج رسالة ترحيبية بها اسم المستخدم الموجود فى مصفوفة الجلسة، فإن لم تكن محجوزة، فسيتم إستدعاء ملف login.html الموجود به شيفرة html الخاصة بنموذج تسجيل الدخول.
ملاحظة:
            يجب فى بداية ملف header.php وضع دالة بدأ الجلسة session_start() كي تبدأ الجلسة مرة أخرى عند تحديثها وبها الـKeys التى قمنا بتحديدها مسبقًا ليعمل الشرط بشكل صحيح.
أرجوا أن أكون قد وفقت فى الإجابة عن هذا السؤال، بالتوفيق.
المزيد من المواضيع:

0 التعليقات:

إرسال تعليق