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

الموضوع: حماية صفحة مثل السي بنل

  1. #1

    حماية صفحة مثل السي بنل



    في بعض الاحيان نحتاج الى حماية صفحة ، بدون session او cookie ..
    هناك طريقة تضع كود باعلى الصفحة ويظهر لك مربع حوار يطلب اسم المسخدم
    وكلمة السر .. عند طلب الصفحة ..

    كود PHP:
    <?
    $username 
    "swalif";
    $password "swalif";
    if(!isset(
    $PHP_AUTH_USER)||($PHP_AUTH_USER!="$username")||($PHP_AUTH_PW!="$password")){
    Header("WWW-Authenticate: Basic realm='فضلاً أدخل إسم المستخدم وكلمة المرور ' ");
    Header("HTTP/1.0 401 Unauthorized");
    exit;
    }else{
    // كود الصفحة الباقية ..
    }
    ?>






    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    202


    مشكور اخي ابوطارق جزاك الله كل الخير

    لكن سوألي هل افضل وأامن من طريقة session او cookies ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

    هل المقصود // كود الصفحة الباقية .. (( محتويات الصفحة )) التي نريدها ان تظهر الا لمن يملك اسم المستخدم وكلمة المرور

    واخيرا ياريت لو تشرح لنا طريقة حماية محتويات الصفحة بأستخدام session
    لاني عملت سكربت بسيط لوحة تحكم بسيطة لكني اريد ان احمي صفحة لوحة التحكم بأسم مستخدم وكلمة مرور

    وشكرا






  3. #3


    لماذا السيشن؟
    السيشن Sessions هي من اهم المزايا التي تتمتع بها اي لغة برمجة، ونحتاجها دائماً عندما تظهر الحاجة لنقل بيانات بين صفحات السكريبت، ففي أي سكريبت عادي يتم فقدا، المتغيرات الخاصة بالصفحة عند الانتقال الى صفحة أخرى، وهذه تمثل مشكلة في بعض السكريبتات مثل "سلة التسوق" والتي تحتوي معلومات عن بضائع وخدمات قام المستخدم بشرائها، والتي يجب ان تحفظ خلال جولته في الموقع، من هنا تظهر الحاجة لاستخدام السيشن sessions.
    طريقة عمل السيشن
    لتلبية المتطلبات المشروحة في السطور السابقة، تقوم السيشن بتخزين بيانات عن الزائر (مثل: اسم المستخدم ومحتويات سلة التسوق) على السيرفر نفسه في مكان آمن بعيداً عن المتطفلين، ولكن هذه البيانات تعتبر مؤقتة فسرعان ما يتم حذفها بمجرد ترك الزائر للموقع، فاذا كنت تحتاج للاحتفاظ بها لمدة أطول يجب أن تقوم بنقلها الى قاعدة البيانات MySQL للاحتفاظ بها لفترات أطول.
    وتعمل السيشن عن طريق انشاء رقم تعريفي UID مميز لكل زائر للموقع بهذه الطريقة لا يمكن ان تختلط بيانات اثنين من الزوار أبداً.
    بدء السيشن
    الخطوة الأولى للتعامل مع السيشن هي بدءها، وعند بداية السيشن يجب أن تحرص على ان يكون كود البداية في أول الملف قبل أي كود HTML آخر، بمعنى آخر قبل طباعة أي شيء الى المتصفح.
    ويكون بدء السيشن باضافة الكود التالي الى بداية ملفك تماماً:
    مثال1:

    كود PHP:
    <?php
    session_start
    ();
    ?>
    يقوم هذا الكود البسيط بتسجيل رقم UID للسيشن في السيرفر استعدادا للاحتفاظ بالمتغيرات فيها.
    اضافة متغير الى السيشن
    لاضافة اي متغير الى السيشن استخدم المصفوفة SESSION_$ والتي ستحتاجها عند الاضافة والقراءة لمتغيرات السيشن، جدير بالذكر انه في الاصدارات القديمة من PHP كانت هناك طريقة أخرى لكن تم تحديثها الى هذه الطريقة حالياً:
    مثال2:
    كود PHP:
    <?php
    session_start
    (); 
    $_SESSION['views'] = 1
    echo 
    "مرات المشاهدة = "$_SESSION['views'];
    ?>
    في هذا المثال قمنا باضافة متغير الى السيشن (في السطر رقم 1) ومن ثم قرائته (في السطر رقم 2).
    استخدام الدالة isset
    عندما ترغب في قراءة قيمة متغير من السيشن فمن المهم ان تختبر اذا كان موجوداً أولاً، ويكون ذلك باستخدام الدالة isset مع تمرير اسم المتغير لها، لاحظ المثال التالي:
    مثال3:
    بفرض أننا أردنا انشاء عداد لعدد مرات مشاهدة صفحات السكريبت لكل مستخدم، فيمكننا ذلك عن طريق انشاء كود يقوم بالتأكد من وجود قيمة في العداد عن طريق الدالة isset فاذا كان له قيمة يضيف عليه 1 مشاهدة، واذا لم يكن له قيمة فيعطيه القيمة 1 وهي أول مشاهدة.
    لاحظ الكود التالي:
    كود PHP:
    <?php
    session_start
    (); 
    if(isset(
    $_SESSION['views']))
    {
    $_SESSION['views'] = $_SESSION['views']+ 1;
    }
    else
    {
    $_SESSION['views'] = 1;
    }
    echo 
    "عدد المشاهدات = "$_SESSION['views']; 
    ?>
    في الكود السابق هناك احتمالين:
    1- الا يكون هناك قيمة للمتغير views في المصفوفة SESSION_$، وهذا معناه ان هذه اول زيارة للزائر، وهنا سيتم تنفيذ الكود في السطر رقم 9 وهو باعطاء القيمة 1 للعداد views.
    2- ان يكون هناك قيمة للمتغير المذكور، يعني هذه ليست أول زيارة وفي هذه الحالة سيتم تنفيذ الكود في السطر رقم 5 وهو بزيادة المتغير views بمقدار 1 زيارة.
    انهاء السيشن
    بالرغم من أن السيشن يتم انهائها أوتوماتيكياً بمجرد اغلاق المتصفح، ولكن هناك بعض الحالات التي يجب أن تنهي السيشن بنفسك وتحذف ما فيها من متغيرات.
    تخيل انك تمتلك موقع لبيع البضائع وقام زائر باتمام الشراء منك فيجب عليك ان تفرغ سلة التسوق الخاصة به، كالتالي:

    كود PHP:
    <?php
    session_start
    (); 
    if(isset(
    $_SESSION['cart']))
    {
    unset(
    $_SESSION['cart']); 
    }
    ?>
    ويقوم الكود السابق بافراغ المتغير cart في حالة انه يحمل اي قيمة.
    كما يمكنك ايضاً انهاء السيشن (تدميرها) بكل ما تحتويه من متغيرات كالتالي:
    كود PHP:
    <?php
    session_start
    (); 
    session_destroy();
    ?>
    وسيقوم هذا الكود بحذف السيشن كاملةً فيجب أن تتأكد أولاً أنك لم تعد محتاجاً لها

    وإلى الدرس التالي بإذن الله....





    التعديل الأخير تم بواسطة ابوطارق ; 17-06-2008 الساعة 06:58 PM سبب آخر: النسيان
    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    202


    بوركت اخي ابو طارق

    بإنتظار كود حماية الصفحة باستخدام السيشن وشكرا






  5. #5


    ما فهمت عليك خوي محمد منذر

    وضعت الدرس كاملا ولو عندك سؤال اتفضل خوي الغالي





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    202


    تعبتك معي لكن طلبي هو

    عندي صفحة اريد ان اجعل محتوياتها لاتظهر لاحد لا من لديه اسم المستخدم وكلمة المرور
    يعني تحتوي على فورم يحتوى على (( اسم المستخدم وكلمة المرور وزر submit))
    لكن مع هذا الفورم استخدم السيشن






  7. #7


    خوي محمد المنذر لو قرآت الدرس الذي وضعته في هذا الموضوع عن السيشن سوف يتضح لك كيف تستخدمهم





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  8. #8
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    93


    كود رائع انا استخدم الكود التالي وهو يعمل بكفاءة
    كود:
    <?php
        if (!isset($_SERVER['PHP_AUTH_USER'])) {
            header("WWW-Authenticate: Basic realm=\"Private Area\"");
            header("HTTP/1.0 401 Unauthorized");
            print "Sorry - you need valid credentials to be granted access!\n";
            exit;
        } else {
            if (($_SERVER['PHP_AUTH_USER'] == 'paul') && ($_SERVER['PHP_AUTH_PW'] == 'hudson')) {
                print "Welcome to the private area!";
            } else {
                header("WWW-Authenticate: Basic realm=\"Private Area\"");
                header("HTTP/1.0 401 Unauthorized");
                print "Sorry - you need valid credentials to be granted access!\n";
                exit;
            }
        }
    ?>









  9. يعطيك العافيه اخوي ابو طارق

    بخصوص الاخ محمد .. وبعد إذن الأخ ابو طارق

    تفضل اخوي .. هذا شرح اخر لحماية لوحة التحكم من خلال السيشن
    PHPvillage قرية بي اتش بي

    لكن مع مراعاة ان الدرس قديم شوي .. اي ان هناك فرق في بعض الدوال مثل
    سوف تجد
    كود PHP:
    session_register("age"); 
    وهي حاليا تغيرت الى :
    كود PHP:
    $_SESSION['age'
    وهو لتسجيل الجلسة ..

    ------------------------------------
    هناك ايضا :
    كود PHP:
    session_unregister("user"); 
    تغير الى :
    كود PHP:
    unset($_SESSION['user']); 
    ---------------------------
    وايضا لتمدير الجلسة كاملة نستخدم :
    كود PHP:
    session_destroy(); 
    تقريبا هذه هي الفروقات .. واتبع نفس الشرح السابق كاملا وهو درس وتطبيق عملي لحماية لوحة التحكم ..

    .. اسف للإطالة .. والشكر موصول للاخ ابو طارق ..





    __________________
    -----------------------------------------------------------
    :: همـ المشاعر ــس :: عبد الله :: للتصميم و التطوير ::
    http://www.mr-sa.com
    -----------------------------------------------------------

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Apr 2008
    المشاركات
    82


    أخي أبو طارق مع احترامي لك أعتقد أن الطريقة أصبحت قديمة و يوجد طرق كثيرة أفضل منها و هي أيضاً غير آمنة ...
    و الله أعلم










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

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

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