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

الموضوع: [درس] بدايتك بالجلسات session .

  1. #1
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431

    [درس] بدايتك بالجلسات session .



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


    <FONT face=Tahoma>السلام عليـكم

    درسنا اليوم عن مقدمة بسيطه عن نظام الجلسات session ...
    قبل كل شئ نستعمل الجلسات في عمل لوحة تحكم سواءً للمدير او العضو , او منطقة معينة خاصه بالإدارة ... أو إدارة طلب ... إو إدراج فاتورة ... أو سكربت للأسئله ..... أو أياً كان ..


    سنتعلم كيفية إنشاء صفحة خاصة , لايدخلها غير المدير بـ اسم مستخدم وكلمة مرور .

    هناك شئ اساسي بنظام الجلسات ... ألا وهو الكود التالي :
    كود PHP:
    <? 
    session_start
    (); 
    ?>


    يجب وضعه في اول الملف بدون ولاسطر فارغ ولا قبله اي شئ ابداً ابداً ولاحتى اكواد html .


    نبدأ في برمجة لوحة التحكم البسيطة ... طبعاً سبق وشرحنا كيفية تركيب سيرفر شخصي , الآن انشئ مجلداً جديداً وقم بتسمية بالإسم admin .

    الآن سنضع ملف لمعلومات المدير "اسم المستخدم , كلمة المرور"
    وهذا هو الملف :
    اسم الملف هو info.php .


    كود PHP:
    <? 
    // اسم المستخدم للمدير 
    $admin_username "admin"
    // كلمة المرور للمدير 
    $admin_password "11220"
    ?>
    من هذا الملف سنحضر معلومات الإدارة ...
    الآن سنقوم بكتابة ملف تسجيل الدخول login.php :

    كود PHP:
    <? 
    session_start
    (); 
    ?> 
    <HTML dir="rtl"> 
    <HEAD> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256"> 
    <meta http-equiv="Content-Language" content="ar-sa"> 
    <TITLE> لوحة التحكم / تسجيل الدخول  </title> 
    </head> 
    <body> 
    <font face="tahoma" style="font-size:8pt"> 
    <div align="center"> 
    <? 
    include("info.php"); 
    if(
    $_GET['log'] == 1){ 
    ?> 
    <form method="POST" action="login.php?log=2"> 
        <p align="center"><span lang="ar-sa">اسم المستخدم : </span> 
        <input type="text" name="username" size="20"><br> 
        <span lang="ar-sa">كلمة المرور : </span> 
        <input type="text" name="password" size="20"><br> 
        <br> 
        <input type="submit" value="إرسال" name="B1"></p> 
    </form> 
    <p align="center">&nbsp;</p> 
    <? 

    if(
    $_GET['log'] == 2){ 
    // إحضار المعلومات من الحقول السابقة 
    $user $_POST['username']; 
    $pass $_POST['password']; 
    // التأكد من ان حقل اسم المستخدم ليس فارغاً 
    if($user == ""){ 
    print 
    " لم تقم بادخال اسم المستخدم "

    else 

    // التأكد من ان حقل كلمة المرور ليس فارغاً أيضاً 
    if($pass==""){ 
    print 
    "لم تقم بإدخال كلمة المرور"

    else 

    // ثم نتأكد من المعلومات 
    if($user == $admin_username && $pass == $admin_password){ 
    $_SESSION['admin_session'] = "$admin_username"
    PRINT 
    " لقد تم تسجيل دخولك بنجاح يا <br /> $user <br /> اذا لم يتم نقلك تلقائياً <a href='index_admin.php'> اضغط هنا </a>"
    echo 
    "<a href=index_admin.php>   </a><BR>   ..<meta http-equiv = refresh content=1;url=index_admin.php> </font>"


    else 

    print
    " خطأ , اسم المستخدم او كلمة المرور خطأ  <a href='index.php'> اضغط هنا للرجوع </a> "




    ?>
    طبعاً بالسطر الأول وضعنا الكود الذي سبق وقلنا انه معناه بداية الجلسه ويجب وضعه قبل كل شئ ...
    ثم وضعنا اكواد HTML عادية لن اقوم بشرحها .
    ثم بدأنا وسم البي اتش بي مره اخرى , واستعدينا الملف info.php بالداله include() سبق وشرحناها.
    ثم وضعنا الخطوة الأولى بإستخدام $_GET سبق وشرحناها ,
    نأتي للخطوه الثانيه $_GET['log'] == 2
    اولا قمنا بإحضار المُدخلات بالحقول بواسطة $_POST "سبق وشرحناها"
    ثم تأكدنا من ان الحقول غير فارغه بواسطة if "سبق وشرحناها"
    ثم هنا


    كود PHP:
    if($user == $admin_username && $pass == $admin_password){ 
    تأكدنا من أن $user "وهو ماقمنا بإحضاره من حقل اسم المستخدم" مساوي لـ المتغير المسؤول عن اسم المستخدم للمدير في ملف info.php .... ثم كررنا العملية بـ "&&"...
    ثم في حال تحقق الشرط يحدث الآتي :
    - تسجيل الجلسة.


    كود PHP:
    $_SESSION['admin_session'] = "$admin_username"
    هنا وضعنا $_SESSION['admin_session']
    الجلسة admin_session قيمتها تساوي اسم المستخدم ...

    وطباعة انه تم تسجيل الدخول للوحة التحكم بنجاح والتحويل للصفحة الخاصة بلوحة التحكم
    ثم استعملنا else لطباعة النص "اسم المستخدم او كلمة المرور خطأ ... اضغط هنا للرجوع", في حالة كانت المعلومات غير صحيحة.
    ثم قمنا بإغلاق جميع الأقواس.


    الآن نأتي لللصفحة الرئيسية index.php , أي انه عندما يدخل الشخص إلى الصفحة
    http://localhost/admin على سبيل المثال تظهر له هذه الصفحة ... كود الصفحة هو :


    كود PHP:
    <? 
    session_start
    (); 
    ?> 
    <HTML dir="rtl"> 
    <HEAD> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256"> 
    <meta http-equiv="Content-Language" content="ar-sa"> 
    <? 
    ?>
     
    <TITLE>لوحـة التحكـم | Control Panel -</title> 
    </head> 
    <body> 
    <? 
    if (isset($_SESSION['admin_session']) ) { 
    echo 
    "<a href=index_admin.php>سيتم نقلك للصفحة الرئيسية للوحة التحكم</a> 
    <BR> ,.بعد ثواني...<meta http-equiv = refresh content=1;url=index_admin.php> </font>"


    else 

    include (
    'login.php'); 

    ?>


    شرح بسيط للكود :

    كود PHP:
     if (isset($_SESSION['admin_session']) ) { 


    إذا كان لـ $_SESSION['admin_session'] قيمة , فـ قم بالآتي ...

    طباعة النص "سيتم نقلك للصفحة الرئيسية للوحة التحكم تلقائياً " ... ومن ثم التحويل التلقائي ...
    أما اذا كان لايوجد للمتغير أي قيمة فقم بتضمين الملف login.php لكي يتم تسجيل الدخول.




    صفحة index_admin ولاتحتاج لشرح ... لانها شبيهه بـ index.php كثيراً :


    <STRONG>
    كود PHP:
    <? 
    session_start
    (); 
    ?> 
    <HTML dir="rtl"> 
    <HEAD> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256"> 
    <meta http-equiv="Content-Language" content="ar-sa"> 
    <? 
    ?>
     
    <TITLE>لوحـة التحكـم | Control Panel -</title> 
    </head> 
    <body> 
    <? 
    if (isset($_SESSION['admin_session']) ) { 
    ?> 
    <table border="1" width="100%" id="table1" cellspacing="1" bgcolor="#ECE9D8" style="border-collapse: collapse" bordercolor="#C0C0C0"> 
        <tr> 
            <td> 
            <p align="center"><b><font face="Tahoma" size="2"> 
            <a href="index_admin.php"><span style="text-decoration: none">الرئيسية</span></a>  
            | <a href="#top"><span style="text-decoration: none">التحكم بالملفات</span></a>  
            | <a href="#top"><span style="text-decoration: none">التحكم بالأعضاء</span></a>  
            |<a href="#top"><span style="text-decoration: none"> التحكم بالسكربت</span></a><span lang="en-us">  
            | </span><a href="logout.php"><span style="text-decoration: none">تسجيل  
            الخروج</span></a></font></b></td> 
        </tr> 
    </table> 
    <p><br> 
    &nbsp;</p> 
    <table border="1" width="100%" id="table2" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0"> 
        <tr> 
            <td> 
            <p align="center"><b><font face="Tahoma" size="2">السلام عليكم</font></b></td> 
        </tr> 
        <tr> 
            <td> 
            <p align="center"><font face="Tahoma" style="font-size: 9pt">هذه منطقة  
            خاصة بالإدارة ... شكراً لك عزيزي المدير على تسجيل الدخول , هذه لوحة تحكم  
            مبسطة.</font></td> 
        </tr> 
    </table> 

    <? 

    else 

    include (
    'login.php'); 

    ?>

    الآن سنقوم بعمل logout.php تسجيل الخروج , هذه هي الصفحة :


    <STRONG>
    كود PHP:
    <? 
    session_start
    (); 
    ?> 
    <HTML dir="rtl"> 
    <HEAD> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256"> 
    <meta http-equiv="Content-Language" content="ar-sa"> 
    <TITLE>تسجيل الخروج . . . </title> 
    </head> 
    <body text="#800000"> 
    <font face="Tahoma" style="font-size: 8pt"> 
    <div align="center"> 
    <? 
    if (isset($_SESSION['admin_session']) ) { 
    unset( 
    $_SESSION['admin_session']); 
    session_destroy(); 
    echo 
    " تم تسجيل الخروج ";echo "<br><a href='index.php'> اضغط هنا لتسجيل الدخول مره اخرى</a>"

    else 

    print 
    " <font face='tahoma' style='font-size:8pt'>يجب عليك تسجيل الدخول لرؤية هذه الصفحه"
    include (
    'index.php'); 

    ?>
    طبعاً سنشرح بضعة اسطر فقط ...:


    كود PHP:
    unset( $_SESSION['admin_session']); 
    session_destroy(); 
    السطر الأول ... unset() وتستخدم لحذف المتغير , حذفاً نهائياً ... وهنا حذفنا الجلسه ...
    وفي السطر الثاني قمنا بتدمير الجلسة عبر الدالة session_destroy();



    تطبيقي بالمرفقات مع زيادات قليلة وفصل البرمجة عن القوالب قليلاً ""

    من هنا :

    http://www.phpx3.com/drs/download/3530session.rar
    أو هنا
    http://www.phpx3.com/drs/download/566session.zip





    إنتهى ... أتمنى ان الدرس كان واضحاً , ,إذا لم تفهم جيداً , اقرأ الملفات ربما تفيدك.



    http://phpx3.com/drs/show555-1.html







  2. #2


    يعطيك العافيه يابطــل ..





    __________________
    أبداع الجرافيكس والفوتغرافيا ..
    على موقع ومنتديات ألـــوان
    www.al-waan.com


    مركز تحميل ألوان
    www.al-waan.com/up

    منتديات الوان
    www.al-waan.com/vb


    عالم من الأبــداع ..

  3. #3
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    جميل .. ان شاء الله تكمل الدرس و تتعمق أكثر بال sessions سيفيد الكثير .
    لي تعليق بسيط و سريع . بالنسبه عند تدمير الجلسه يفضل افراغ متغير ال $_SESSION بهذه الطريقه :
    $_SESSION=array();
    بدلاً من استخدام unset
    لأنها كذا أسرع وأفضل في افراغ ال $_SESSION خاصة أن كانت تحتوي معلومات مخزنة كثيره





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com


  5. #5
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    ياهلا اخوي أحمد ...
    والله بصراحة unset تفي بالغرض ...
    لكن مو مشكله راح اجرب اللي انت قتله "إفراغ المتغير $_SESSION ".

    وشكراً لك على الرد الجميل.






  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    597

  7. #7
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431

  8. #8


    بارك الله فيك






  9. #9
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431





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

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

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