النتائج 1 إلى 15 من 15

الموضوع: عمل نظام تسجيل بنظام الجلسات

  1. عمل نظام تسجيل بنظام الجلسات



    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته

    سنتناول فى هذا الدرس كيفية عمل صفحات مؤمنة (تتطلب تسجيل دخول) استخدام الجلسات (sessions)

    فى البداية الجلسات , هى وسيلة لارسال بيانات من صفحة لاخرى مثلا عندما تتنقل بين صفحات المنتدى المختلفة يمكن استخدام الجلسات لارسال اسم المستخدم عبر الصفحات

    ال PHP بدءا من الاصدار 4 (منذ فترة طويلة) بدأت تدعم الجلسات عبر موديول خاص يوفر بعض الوظائف التى تمكن من تنفيذ هذا الامر

    الان فى مثالنا هذا نرغب فى عمل صفحات لا يمكن الوصول لها الا بعد اجرا تسجيل دخول والتاكد من صحة المستخدم وكلمة المرور (لوحة تحكم مثلا)

    الصفحات التى سنتسخدمها
    index.php (الصفحة المرغوب تامينها)
    sess.php (ملف خاص للتاكد من تنفيذ تسجيل الدخول)
    login.php (الملف الذى يتم من خلاله تسجيل الدخول)
    config.php (ملف التظبيطات والذى يحوى اسم المستخدم وكلمة المرور)
    err.html (الصفحة التى تظهر للزائر قبل تسجيل الدخول والتى توجهه الى صفحة التسجيل)
    done.html (صفحة الترحيب بعد اتمام التسجيل والتى توجهه الى لوحة التحكم)

    اولا الملف login.php
    هو الملف المسئول عن اتمام عملية التسجيل منهجية عمله هى اتاحة الفرصة للزائر بادخال البيانات ومقارنة هذه البيانات بالموجود بملف config.php, وحال ما تطابقت البيانات تقوم بتسجيل متغير session يتم استخدامه فيما بعد.., اما إذا اعطى بيانات خاطئة تظهر له صفحة إدخال البيانات مرة اخرى.

    الكود

    كود:
    <?php
    session_start();
    1-if($_SESSION['admin']) exit;
    2-if(isset($_POST['user_pw'])){
    3-	require('config.php'); 
    4-	if($_POST['user_pw'] == $password && $_POST['user_un'] == $username){
    5-		$_SESSION['admin'] = true;
    6-		require('done.htm');
    7-		exit;
    
    	}
    	
    }
    ?>
    <html dir="rtl">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>تسجيل دخول</title>
    <link href="css.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <div class="announce">
    <div>من فضلك قم بتسجيل الدخول اولا</div>
    </div>
    <form action="login.php" method="post">
    <fieldset class="fieldset">
    <legend> تسجيل دخول </legend>
    <table width="460" align="center">
    <tr>
    <td>
    اسم المستخدم
    </td>
    <td><input type="text" name="user_un" dir="ltr"></td>
    </tr>
    <tr>
    <td>
    كلمة المرور
    </td>
    <td><input type="password" name="user_pw" dir="ltr"></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="submit" value="ارســـــــال"></td>
    </tr>
    </table>
    </fieldset>
    </form>
    </body>
    </html>
    <?php
    exit;
    ?>
    شرح موجز عن هذا الكود فى السطر الاول نجرى اختبار للتاكد من وجود متغير الجلسات المسمى admin , متغير جلسات لانه موجود بالمصوفة _SESSION
    فإذا كان هذا المتغير موجود بالفعل دل ذلك على ان هذا الزائر قد قام بتسجيل دخول ناجح من قبل ومن ثم يتم الخروج من ملف login

    فى السطر الثانى نختبر وجود المتغير user_un والذى يتم ارساله من خلال النموذج بالطريقة POST لذلك وجوده يعنى لنا ان البيانات قد تم ارسالها من النموذج وإن لم يكن فالطبع سنطبع له نموذج html ليقوم بتعبئة البيانات ثم يرسلها,, ولكن الان لنفترض ان البيانات قد ارسلت, لذلك سننتقل الى السطر 3
    فى هذا السطر يتم استدعاء ملف الكونفيج والذى يحمل بيانات الدخول كما ذكرنا.
    فى السطر 4: يتم مقارنة البيانات التى قام الزائر بادخالها بالبيانات الموجودة بملف الكونفيج, إذا تحقق هذا الشرط ننتقل الى السطر 5,
    فى السطر 5: يتم تسجيل متغير عبر الجلسات وهو متغير admin وهذا المتغير الذى سنستخدمه فيما بعد للتحقق من تسجيل دخول الزائر ام لا.
    اما فى السطر 6: فيتم استدعاء ملف done وهو ملف تم تجهيزه كرسالة ترحيبية ينقل الزائر بعدها الى الصفحة الرئيسية بعد اتمام الدخول بنجاح
    السطر 7: يقوم بانهاء عمل السكريبت وذلك حتى لايظهر نموذج ال html مرة اخرى
    ---------
    الجز الثانى من صفحة اللوجن هو نموذج ال html اعتقد ما يحتاج لتوضيح فقط ان الصفحة المستهدفة من النموذج action ترسل الى نفس صفحة اللوجن واوضحنا كيف يتم ذلك من خلال التحقق من وجود متغير فى المصفوفة POST ام لا
    ,,,,,,,,,,,,
    وهكذا انهينا الجزء الاهم فى هذا الدرس,,
    ننتقل الى الصفحة sess.php
    هذه نقوم باستدعائها فى كافة الصفحات التى نرغب فى تامينها,, لانها تقوم بالتحقق من وجود متغير الجلسات admin والذى وجوده يدل على اتمام التسجيل بنجاح وان لم يوجد يقوم هذا الملف باظهار رسالة خطا توجب التسجيل اولا ثم تقوم بانهاء عمل الصفحة

    الكود

    كود PHP:
    <?php
    1
    -session_start();
    2-if(! $_SESSION['admin']){
    3-    require('err.htm');
    4-    exit;
    }
    ?>
    فى السطر الاول نجد استدعاء الدالة session_start وهو تقوم ببدء عمل الجلسات (ساحاول إن شاء الله شرح الجلسات بالتفصيل فى درس قادم)
    فى السطر 2- نتحقق من وجود متغير الجلسات admin والذى بعدم وجوده ندرك ان هذا الزائر لم يقم بتسجيل الدخول "لاحظ علامة النفى ! " وعندها ننتقل للسطر 3
    فى السطر 3 نقوم باستدعاء ملف err وهو ملف يظهر رسالة خطا ويقوم بتوجيه المتصفح الى صفحة الدخول لوجن, ثم نقوم انهاء عمل باقى الصفحة فى السطر 4
    (لاحظ انه فى حالة وجود متغير الجلسات عندها لن يتحقق قاعدة الجملة الشرطية مما يعنى ان باقى الصفحة سيتم ظهوره بشكل طبيعى وهذا هو ما نرغبه لمن قام بتسجيل الدخول)
    ----------------------------------------
    الملف config.php
    هو الملف الذى يحتوى على كلمة المرور واسم المستخدم

    كود PHP:
    <?php
    $username 
    'admin';
    $password 'pass';
    ?>
    بالطبع يمكنك تغيير القيم الى ما تريد
    ----------------------------------------
    الملف done.html
    هو الملف الذى يظهر رسالة ترحيب بعد اتمام تسجيل الدخول ثم يقوم بتوجيه المتصفح الى الصفحة الرئيسية

    كود HTML:
    <html dir="rtl">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <meta http-equiv="refresh" content="3;URL=index.php">
    
    <title>تسجيل دخول ناجح</title>
    
    </head>
    
    <body>
    <div style="text-align:center; background-color: #EBEBEB; border-top: 1px solid #FFFFFF; border-left: 1px solid #FFFFFF; border-right: 1px solid #AAAAAA; border-bottom: 1px solid #AAAAAA; font-weight : bold;">
    <h4>تم تسجيل الدخول بنجاح </h4>
    <p>سيتم نقلك تلقائيا او قم <a href="index.php">بالضغط هنا</a></p>
    <div>
    </body>
    </html>
    لاحظ العنوان الموجود والذى يتم التحويل اليه بالتاكيد يمكنك اختيار اى مسار اخر للتحويل
    ------------------------------------
    الملف err.html
    والذى يظهر للزائر رسالة خطا عند محاولته الوصول لصفحة مؤمنة دون تسجيل الدخول ثم يقوم بتوجيه المتصفح الى صفحة الدخول

    كود HTML:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <meta http-equiv="refresh" content="3;URL=login.php">
    
    <title>انت غير مسجل</title>
    
    </head>
    
    <body>
    <div style="text-align:center; background-color: #EBEBEB; border-top: 1px solid #FFFFFF; 
    
    border-left: 1px solid #FFFFFF; border-right: 1px solid #AAAAAA; border-bottom: 1px solid 
    
    #AAAAAA; font-weight : bold;">
    <h4>يتوجب عليك تسجيل الدخول اولا</h4>
    <p> سيتم نقلك الان تلقائيا  او قم <a href="login.php">بالضغط هنا</a></p>
    <div>
    </body>
    </html>
    -----------------------------------------
    واخيرا الصفحة index.php وهى الصفحة التى نرغب فى تامينها فقط كلما يهم هو استدعاء الملف sess فى بداية هذا الملف

    كود:
    <?php
    require('sess.php');
    ?>
    <html dir="rtl">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>لوحة التحكم</title>
    
    </head>
    <body>
    <center><h3>مرحبا بك فى لوحة التحكم الخاصة</h3></center>
    </body>
    </html>
    لاحظ ان كل ما يهمنا هو استدعا الملف sess.php فى اول الصفحة وهذا يمكنك تكراره مع اى عدد من الصفحات التى ترغب فى تامينها.

    وفى النهاية أسأل الله ان اكون وفقت فى شرح هذا المثال وان يقدم لكم الفائدة.

    ملحوظة :- هذا مثال الغرض منه هو التعلم ولا يمكن ان اقدم لكم اى مسئولية عن مستوى الامان الذى يوفره هذا المثال ....
    ساقوم بارفاق ملف مضغوط به جميع الملفات المستخدمة بهذا المثال





    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip sess.zip‏ (2.7 كيلوبايت, 969 مشاهدات)


  2. #2
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    جميل ورائع .

    واستمر في هذا الابداع ..

    والى الامام ..

    وان شاء الله في اقرب فرصة سأقوم بتطبيق كل ما ذكرت ..


    والف الف شكر لك ..




    وخالص المودة ،،





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  3. #3
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    أحسنت وبارك الله فيك وجعل تعبك في الشرح في ميزان عملك أخ ولع

    لديك الكثير ونتمنى أن تجد لمثل هذه الدروس وقتا .. وليتك تشرح لنا طرق التعامل مع PHP عن طريق الفلاش فأنت مبدع في هذا

    تحياتي لك





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    316


    مشكوووور اخوي Wala3 CArds :nice:
    ماقصرت والله على الشرح الوافي والف شكر
    اخوك





    __________________
    مشعل
    ze3ex@hotmail.com

  5. #5


    سلام عليكم يا اخى

    ما شاء الله الشرح وافى وسهل وبسيط

    لكن ابى اسأللك سوال

    انا ابى انة يستدعى اليوزر نيم والباسوردد من قاعدة البيانات


    يعنى اقدر انى اضيف يوزر نيم وباسورد

    يا ريت تكون فهمت قصدى

    منتظر ردك

    وشكرا مرة تانية





    __________________
    Mobile :- 00201223030708

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    جميل .. تسلم يدك

    ولكن لو حبينا " تذكرني " أو " لا تتذكرني " ؟

    لازم كوكيز





    __________________
    SWF Thumbnail - tweet me

  7. #7
    فضلاً اكتب اسمك الحقيقي هنا
    زائرshababhost


    مشكورررررررررررر






  8. #8
    عضو فعال
    تاريخ التسجيل
    Jun 2000
    المشاركات
    1,239


    درس جميل وبسيط
    جهد تشكر عليه يا اخي الكريم


    اقتباس المشاركة الأصلية كتبت بواسطة easylink.com.eg
    سلام عليكم يا اخى

    ما شاء الله الشرح وافى وسهل وبسيط

    لكن ابى اسأللك سوال

    انا ابى انة يستدعى اليوزر نيم والباسوردد من قاعدة البيانات


    يعنى اقدر انى اضيف يوزر نيم وباسورد

    يا ريت تكون فهمت قصدى

    منتظر ردك

    وشكرا مرة تانية

    استبدل شرط صحة اليوزر والباسوورد الموجود هنا

    كود:
    4-	if($_POST['user_pw'] == $password && $_POST['user_un'] == $username){
    5-		$_SESSION['admin'] = true;
    وضع مكانه الاستدعاء من قاعدة البيانات مع التحقق بالطبع من الصحة :nice:

    وأذا محتاج مساعدة نحن حاضرين






  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    شكرا لك .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    66


    السلام عليكم اخوي الإماراتي ممكن توضح لي كيف معليش تحملني





    __________________
    مع تحياتي

  11. #11
    عضو فعال
    تاريخ التسجيل
    Jun 2000
    المشاركات
    1,239


    اخوي مرعب نجد

    حاول تقرأ الدرس مرة ثانية وركز على هالنقطة :
    ان الجلسات شي مختلف تماما عن " التحقق من اليوزرنيم والباسوورد "


    انت من خلال هالشرح الجميل والمرتب راح تتمكن ان شاء الله من تسجيل الجلسات حتى تتمكن من نقل المعلومات بين الملفات مثلاً

    اذا كانت عندك عدة ملفات في مجلد admin على سبيل المثال
    وتريد تحميها بحيث ما يدخل عليها الا الاعضاء المخولين
    لازم تتأكد من امتلاك الزائر للجلسة اللي تخوله للدخول في كل ملف من الملفات المتواجدة في هذا المجلد
    يعني باختصار ضع هذا الامر في بداية كل ملف

    كود PHP:
    <?php
    require('sess.php');
    ?>
    الأمر هذا راح يتأكد من امتلاك الزائر للجلسة من عدمه

    وهذا هو المطلوب منك فهمه في هذا الدرس
    بالاضافة طبعا الى عمليات تسجيل الجلسة نفسها واظهار فورم تسجيل الدخول ومسح الجلسات كذلك !! ( اعتقد ان الاخ ما تطرق لهالنقطة الضرورية )

    اما إن كنت ترغب بالتحقق من اليوزرنيم والباسوورد من خلال قاعدة بيانات بها هذه المعلومات فهذا أمر آخر مختلف عن اساسيات الجلسات ولن يتداخلا إلا في منطقة واحدة هي اثناء تسجيل الجلسة فقط لا غير في الغالب

    يعني الشرح الموجود في هذا الموضوع حاليا يقوم بالتأكد من بيانات العضو ومطابقتها بالقيم الموجودة في ملف config
    بينما في حال استخدام جدول في قاعدة البيانات يحتوي على اسماء الاعضاء والباسوورد فانت لن تحتاج لملف ال config
    بل ستحتاج لقراءة جميع الخلايا الموجودة في قاعدة البيانات والتأكد من تواجد هذا العضو وكلمة المرور ، فإذا كان هذا الاسم موجود في قاعدة البيانات وكلمة المرور صحيحة
    تقوم بتسجيل الجلسة
    واذا لم يكون هذا العضو موجود ( أو كانت كلمة المرور خاطئة )
    لا تقوم بتسجيل الجلسة

    والسلام عليكم !!

    طبعا مسألة القراءة من قاعدة البيانات هي مسألة منفصلة وما اعتقد ان مجرد "رد" راح يكفي لايضاح النقطة
    عموماً في موضوع ممكن يساعدك موجود حاليا في المنتدى
    العنوان : http://www.swalif.net/softs/showthread.php?t=39706


    طبعا اذا فهمت كلمة من الكلام الممل اللي انا كتبته
    فما عليك الا انك تقوم بما قلته في السابق

    كود:
    if($_POST['user_pw'] == $password && $_POST['user_un'] == $username){
    $_SESSION['admin'] = true;
    الكود هذا راح يتأكد من اليوزرنيم والباسوورد ويقارنهما بالبيانات المتواجدة في ملف config ( السطر الاول " جملة شرط if " )
    واذا كانت صحيحة راح يقوم بتسجيل الجلسة ( السطر الثاني )
    كل المطلوب منك فعله هو :
    تعديل جملة الشرط " if " بحيث تستبدله بامر قراءة من قاعدة البيانات لقراءة جميع البيانات المتواجدة في جدول الاعضاء ومطابقتها بالقيم اللي ارسلها الزائر ، وفي حال تطابق البيانات تقوم بتنفيذ السطر الثاني

    واذا احتجت اي مساعدة بامكانك اضافتي على الماسنجر لاني كتبت هذا الرد على عجالة ومشغول جداً حالياً
    IT_student@msn.com






  12. #12
    عضو نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    66


    مشكوووور اخوي الإماراتي والله تعبتك معاي لكن الشي اللي كنت ابحث عنه هو هذا الحل
    كل المطلوب منك فعله هو :
    تعديل جملة الشرط " if " بحيث تستبدله بامر قراءة من قاعدة البيانات لقراءة جميع البيانات المتواجدة في جدول الاعضاء ومطابقتها بالقيم اللي ارسلها الزائر ، وفي حال تطابق البيانات تقوم بتنفيذ السطر الثاني
    والحمد لله استطعت الإتصال من قاعدة البيانات والتحقق من اسم المستخدم وكلمة المرور وهذا كله بفضل الله ثم بخبرتك
    اخوي الإماراتي أضفت بريدك الإلكتروني لأني حاب استشيرك في شي بسيط جدا <===طولها
    وهذا بريدي akah84@msn.com :nice:





    __________________
    مع تحياتي

  13. #13
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    389


    السلام عليكم و رحمه الله و بركاته

    مشكور اخى Wala3 CArds
    فعلا شرح وافى بارك الله فيك





    __________________
    سبحان الله
    الحمد لله
    لا إله إلا الله
    الله أكبر

    يستخدم هذا الحساب 3 أشخاص

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    66


    مراحب أخواني نفذت الطريقة مية المية وانا اعتمدت طريقة قاعدة البيانات
    لكن مع الأسف اكتشفت اني لما اعمل تسجيل دخول باي اسم مستخدم وكلمة مرور مسجلة داخل قاعدة البيانات يعملي دخول اوكيه لكن الجلسة تسجل باسم مستخدم هو 1 وكلمة مرور هي 1
    وهذي المشكلة عقدتي والله





    __________________
    مع تحياتي

  15. #15


    شكراً أخ Akwad Net على الدرس الجيد


    لكن كان ينقص عملية تسجيل خروج

    ولعمل ذلك قم بتعديل الآتي

    تعديل ملف index.php بإضافة رابط تسجيل الخروج

    كود PHP:
    <?php
    require('sess.php');
    ?>
    <html dir="rtl">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>لوحة التحكم</title>
    </head>
    <body>
    <center>
    <h3>مرحبا بك فى لوحة التحكم الخاصة</h3>
    <br>
    <a href="logout.php">تسجيل الخروج</a>
    </center>
    </body>
    </html>

    إضافة صفحة تسجيل الخروج logout.php

    كود PHP:
    <?php
    session_start
    ();
    session_destroy();
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <meta http-equiv="refresh" content="3;URL=index.php">
    <title>تم تسجيل الخروج بنجاح</title> 
    </head>
    <body>
    <div style="text-align:center; background-color: #EBEBEB; border-top: 1px solid #FFFFFF; border-left: 1px solid #FFFFFF; border-right: 1px solid #AAAAAA; border-bottom: 1px solid #AAAAAA; font-weight : bold;">
    <h4>تم تسجيل الخروج بنجاح</h4>
    <p> سيتم نقلك الان تلقائيا  او قم <a href="index.php">بالضغط هنا</a></p>
    <div>
    </body>
    </html>
    <?php
    exit;
    ?>
    تم إستخدام دالة session_destroy لإنهاء الجلسة و بالتالي تنفيذ عملية الخروج

    و بالمرفقات جميع الملفات بعد إضافة تسجيل الخروج





    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip sess.zip‏ (3.2 كيلوبايت, 203 مشاهدات)
    __________________
    حازم نور
    http://about.me/Hazem





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض