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

الموضوع: Session

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Apr 2003
    المشاركات
    283

    Session



    نتناول في هذا الدرس
    إعدادات Session في مل php.ini ,
    توضيح الدوال الخاصة بتغيير هذه الاعدادات ,
    استخدام الكوكيز مع الجلسات ,
    توضيح استخدام الدالى session_set_save_handler
    والتي ستكون موضوع الدرس القادم

    الجزء الاول من الدرس
    اهم الدوال التي تساعد في التحكم بالجلسات وقيمها الافتراضية
    session.save_path "/tmp"
    مسار الجلسة في الاوضع الافتراضي تحفظ في ملف tmp
    اذا كنت تستخدم وندز يجب عليك تعديل المسار الى
    c:\WINDOWS\temp

    session.name "PHPSESSID"
    اسم الجلسة المستخدمة

    session.save_handler "files"
    معرفة مكان تخزين الجلسة في الاوضع الافتراضي في ملفات وتستطيع تعديلة الى قاعدة بينات بواسطة دوال خاصة بك

    session.auto_start "0"
    تشغيل الجلسة تلقائي اذا كان القيمة 1 في الوضع الافتراضي صفر

    session.gc_maxlifetime "1440"
    وتعني اقصى عمر للبينات المخزنة في الجلسة
    والرقم 1440 يشير الى عمر البينات بعدها لن تصلح للاستخدام ثم تتم ازالتها

    _____ استخدام الكوكيز مع الجلسات _____
    session.cookie_lifetime "0"
    وقت حفظ هوية الجلسة على كبيوتر الزائر والقيمة صفر تعني انه بمجرد ان يغادر يتم الغاء هوية الجلسة من جهازة

    session.cookie_path "/"
    المسار الذي تريد فيه ضبط الكوكيز الخاص بالجلسة

    session.cookie_domain ""
    تحديد العنوان الذي يتصل بالكوكيز

    session.cookie_secure ""
    هذه الدالة اذا تم تفعيلها يعني ان الكوكيز لن يرسل بواسطة اتصال عادي HTTP
    session.use_cookies "1"
    استخدام الكوكيز مع الجلسات عند القمية واحد

    session.use_only_cookies "0"
    استخدام الكويكز فقط مع الجلسات في جهاز الزائر

    session_get_cookie_params
    تعيد هذة اعدادات الكوكيز المستخدم مع الجلسة
    بواسطة هذه الدالة

    session_set_cookie_params
    يمكن ان تعيد ضبط اعدادات الكوكيز المستخدم مع الجلسات كما لو كنت تستخدم setcookie
    وتاتي بهذه الصورة
    كود:
    session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure]]] )
    session.referer_check ""
    مصدر القدوم لمعرف الجلسة
    session.cache_limiter "nocache"
    مستوى الحماية للجلسة ويعاد ضبطة بدالة خاصة هي

    session_cache_limiter
    يستخدم قبل البدء في الجلسة مثال

    كود PHP:

    <?php

    session_cache_limiter
    ('private');

    $cache_limiter session_cache_limiter();

    echo 
    "تم تحويله الى : $cache_limiter";

    ?>
    session.cache_expire "180"
    عمر مستوى الحماية بدقائق تابع لدالة السابقة
    ويعاد ضبطة بهذة الدالة
    session_cache_expire
    مثال
    كود:
    $expire=60*60*24*7*52; # sec, min, hours, days, weeks
    session_cache_expire($expire);

    session.use_trans_sid "0"
    استخدام معرف الجلسة في العنوان اذا كانت القيمة تساوي واحد

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

    ini_set
    مثال : نقوم بتمرير الدالة التي نريد تعديل قيمتها ثم نضع القيمة المعدلة لها
    كود:
    ini_set("session.use_trans_sid", 0);
    ______

    اهم الدوال المستخدمة في التعامل مع الجلسات
    session_decode
    تقوم هذه الدالة بالحاق بينات جديدة للجلسة او التعديل على بينات موجودة بواسطة تمرير متغير الجلسة الذي تريد تعديلة او اضافته على هذا الدالة


    session_encode
    عرض البينات المخزنة في الجلسة وتحويلها من مصفوفة الى سلسلة


    ---------------

    session_destroy
    تستخدم هذه الدالة في تدمير الجلسة اي حذف الملف بصورة نهائية
    ملاحظة
    يظهر خطاء عند استخدام هذه الدالة في حالة عدم الخروج من الجلسة بصورة نهائية
    لتجنب هذا الخطاء : ابداء الجلسة في كل ملف او جزء من برنامجك بداية مستقلة

    session_id
    تعيد هذة الدالة معرف الجلسة ويمكن استخدامة بشكل يدوي في المتصفح
    مثال
    كود PHP:

    <?php

    $session 
    session_id();

    print 
    "<a href=index.php&s=$session>صفحة البداية </a>";

    ?>
    session_is_registered
    التحقق من تسجيل بينات في الجلسة

    session_name
    اسم الجلسة وهنا تعيد ضبط اسم الجلسة بهذه الدالة مثال

    كود PHP:

    <?php

    /* set the session name to WebsiteID */



    $previous_name session_name("rafiaphp");



    echo 
    "The previous session name was $previous_name";

    ?>

    session_readonly
    تقراء بينات الجلسة بدون الاطلاع عليها قرائة داخل البرنامج

    session_register
    تسجيل بينات في الجلسة ويمكن تسجيلها بضبط قيمة المصفوفة
    $_SESSION او المصفوفة الاقدم $HTTP_SESSION_VARS

    مثال لتسجيل بينات داخل الجلسة
    كود PHP:

    <?php

    $barney 
    "rafiaphp";

    session_register("barney");

    // الطرقة الثانية

    $_SESSION["zim"] = "An invader from another planet.";

    //الطريقة الثالثة

    $HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";

    ?>



    session_save_path
    تعديل المسار لحفظ ملف بينات الجلسة قبل بداية الجلسة

    session_start
    هذه هي دالة بدء الجلسة ويجب ان لا يسبقها فراغ خارج النص البرمجي او شفرة html وأغلب دوال التعديل في العدادات يجب ان تسبقها ان لم يكن كلها

    session_unregister
    تقوم هذة الدالة بالغاء تسجيل متغير الجلسة عكس ما تقوم به الدالة
    session_register
    ومع تجربتي لهذة الدالة session_unregister لم تنجح في الغاء متغير الجلسة

    session_unset
    هذه هي الدالة الناجحة 100% في الغاء جميع متغيرات الجلسة بمجرد استخدام مباشر لها

    session_set_save_handler
    هذه الدالة التي كانت السبب في هذا الدرس
    بواسطة هذه الدالة نقوم بضبط اعدادات جديدة للجلسات
    اولها تغيير مسار حفظ الجلسة اي نقوم بهيكلة النظام مرة اخرى
    ويجب انشاء دوال خاصة ثم نقوم بتمريرها على الدالة السابقة
    session_set_save_handler ( string open,
    string close,
    string read,
    string write,
    string destroy,
    string gc )

    اولا نقوم بانشاء دالة open في هذه الدالة يتم تمرير قيمتين
    الاولى مسار الحفظ path والثانية اسم الجلسة name

    ثانيا close
    دالة لاغلاق ماتم فتحة

    ثالثا read
    قرائة المتغيرات وهذه الدالة يجب ان تعيد متغير اما بقيمة او فارغ حتى تتم العملية بشكل مثالي
    بعكس الدوال السابقة والتي تعدي صح او خطأ true او false
    ويتم تمرير معرف الجلسة على دالة القرائة


    رابعا write
    دالة كتابة البينات ويتم تمرير معرف الجلسة ثم تمرير البينات

    خامسا destroy
    دالة تدمير بينات الجلسة او حذف نهائي للجلسة اذا خرجت من الجلسة نهائيا

    سادسا الدالة gc
    هذه الدالة مهمه ويجب كتابتها بشكل يناسب استخدامك
    لان عملها يعتبر ذاتي وتستخدم في تدمير الجلسات التي انتها وقتها على سبيل المثال في نظام الملفات يجب ان تكتب دالة تقارن وقت استخدام ملف الجلسة واقصى وقت لحفظ ملفات الجلسة وفي الدرس القادم مثال تطبيقي ودالة كتبتها لا تعمل على وندز بشكل الصحيح

    _______
    دروس تتحدث عن الجلسات
    http://www.phpvillage.com/p.phppage=0&idp=53

    http://www.phpvillage.com/p.phppage=0&idp=63

    http://www.swalif.net/softs/showthread.php...&threadid=44936

    المصدر
    http://www.rafiaphp.com/news.php?action=view&id=46





    __________________
    مجموعة بي اتش بي العربية www.php4arab.org
    البوابة العربية www.arabportal.net
    rafia غير متواجد حالياً


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    816


    الف شكر لك اخوي رفيع و درس اكثر من رائع ,,,



    تحياتي





    __________________
    http://www.el7zn.com : مدونتي :)
    MySmartBB : نظره واثقه نحو المستقبل

    You can say FireFox is also a virus that spread around the world, deleting IE
    but we all agree it's a good virus.
    MaaSTaaR غير متواجد حالياً

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Apr 2003
    المشاركات
    283


    العفو ا اخوي





    __________________
    مجموعة بي اتش بي العربية www.php4arab.org
    البوابة العربية www.arabportal.net
    rafia غير متواجد حالياً

  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2001
    المشاركات
    3,680


    بارك الله فيك أخوي رفيع ، درس مهم جداً





    __________________
    الحالة في سوالف : غير نشط


    لاَ اِلَهَ اِلاَّ اَنْتَ سُبْحَانَكَ اِنِّي كُنْتُ مِنَ الظَّالِمِينَ

    الألفاظ هي الثياب التي ترتديها أفكارنا، لذا ..يجب ألا تظهر أفكارنا في ثياب رثة بالية
    محمود المسعودي غير متواجد حالياً

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    120


    جزاك الله كل خير اخوي رفيع
    عاجز عن الشكر موضوع مهم وحيوي





    الرقم13 غير متواجد حالياً

  6. #6
    عضو جديد
    تاريخ التسجيل
    Jul 2003
    المشاركات
    6


    شكرا لك على الموضوع الجميل





    __________________
    Occupation:
    Your job
    al-thani غير متواجد حالياً

  7. #7
    عضو جديد
    تاريخ التسجيل
    Jun 2003
    المشاركات
    24

    موضوع ممتاز لكن !



    السلام
    اخوي الصراحه موضوعك ممتاز بس لو تعطينا مثال كامل على استخدام الداله وبالترتيب
    يعني على حسب علمي انه الداله session_start اتيي اول شي بالملف اذا ماني غلطان وعلى هالمنوال يعني
    اشكرك





    __________________
    xenon
    Mishref.com
    xenon غير متواجد حالياً





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

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

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