လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP session ၏ဘဝသံသရာနှင့်သက်တမ်းကုန်ဆုံးချိန်ကိုမည်သို့သတ်မှတ်ရမည်နည်း။

PHP session ၏ဘဝသံသရာနှင့်သက်တမ်းကုန်ဆုံးချိန်ကိုမည်သို့သတ်မှတ်ရမည်နည်း။

M66 2025-06-06

PHP တွင် Session သည်အသုံးပြုသူမည်သူမည်ဝါဖြစ်ကြောင်းဖော်ထုတ်ခြင်းနှင့်အချက်အလက်ထိန်းသိမ်းခြင်းကဲ့သို့သောလုပ်ဆောင်မှုများကိုနားလည်သဘောပေါက်ရန်ဘုံယန္တရားတစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့်ဘဝသံသရာနှင့်သက်တမ်းကုန်ဆုံးချိန်ကိုဆာဗာ၏ configuration file ( PHP.ini ) မှထိန်းချုပ်ထားသည်

ဤဆောင်းပါးသည် session_start () နှင့်ဆက်စပ်ကြိုတင်ကာကွယ်မှုများမှတစ်ဆင့်ဘဝသံသရာနှင့်သက်တမ်းကုန်ဆုံးချိန်ကိုမည်သို့သတ်မှတ်မည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။

1 ။ session lifecycle နှင့်သက်တမ်းကုန်ဆုံးချိန်ကိုနားလည်ပါ

session life သံသရာသည်အပိုင်းနှစ်ပိုင်းပါဝင်သည်။

  1. သက်တမ်းကုန်ဆုံးချိန်၏သက်တမ်းကုန်ဆုံးချိန် - browser ကိုပိတ်ပြီးနောက်သင်ခန်းစာအိုင်ဒီကိုဆက်လက်ထိန်းသိမ်းထားသည်ဖြစ်စေ,

  2. ဆာဗာအစည်းအဝေး၏သိုလှောင်မှုအချိန် - ဆိုလိုသည်မှာဆာဗာတွင်သိမ်းဆည်းထားသော session data ၏ရှင်သန်ရပ်တည်ရေးသံသရာဖြစ်သည်။

သင်မျှော်လင့်ထားသည့် session lifecycle အောင်မြင်ရန်နှစ် ဦး စလုံးကိုစနစ်တကျတည်ဆောက်ရန်လိုအပ်သည်။

2 ။ session life cycle ၏အဓိကလုပ်ဆောင်ချက်များကိုသတ်မှတ်ပါ

session_start ကိုမခေါ်မီ () , အောက်ပါလုပ်ဆောင်ချက်နှစ်ခုကို သုံး. session lifecycle ကိုသတ်မှတ်နိုင်သည်။

  • session_set_cookie_params () - client cookie ၏သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်သည်။

  • Ini_set ('session.gc_maxlifetime', စက္ကန့်) - server session data ၏အများဆုံးရှင်သန်မှုအချိန်ကိုသတ်မှတ်ပါ။

3 ။ နမူနာကုဒ်

ဤနေရာတွင် session lifecycle ကို 1 နာရီ (စက္ကန့် 3600 စက္ကန့်) ကိုသတ်မှတ်ခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။

<code> & lt; php // server-side session life cycle ကို 1 နာရီအတွင်း server-seess session life cycle ('session.gc_maxlifetime', 3600) ကိုသတ်မှတ်ပါ။

// client cookie ဘဝသံသရာကို 1 နာရီအထိသတ်မှတ်ပါ
session_set_cookie_params ([
'Lifetime' => 3600,
'PATH' => '/',
'Domain' => 'M66.net',
'Secure' => ဟုတ်မှန်ပါသည်, HTTPS အောက်တွင်သာ cookies များကိုပေးပို့ပါ (လိုအပ်ပါက Enabled)
'Httponly' => ဟုတ်မှန်ပါသည်, // လုံခြုံရေးတိုးတက်စေရန် cookies များကိုရယူရန် JS ကို Disable
'samesite' => 'lax' // CSRF တိုက်ခိုက်မှုများ, optional တန်ဖိုးများ: lax, တင်းကျပ်စွာ,
]);

// session ကိုစတင်ပါ
Session_Start ();

// session variable ကိုသတ်မှတ်ပါ
$ _Session ['user_id'] = 1234;
>
</ code>

ဥပမာ -

  • session.gc_maxlifetime : ဆာဗာသည် session data ကိုဆက်လက်ထိန်းသိမ်းထားသည့်အချိန်ကိုထိန်းချုပ်သည်။ ပုံမှန်တန်ဖိုးသည်များသောအားဖြင့် 1440 စက္ကန့် (24 မိနစ်) ဖြစ်သည်။

  • session_cookie_params ()သက်တမ်း parameter သည် client cookie ၏သက်တမ်းကုန်ဆုံးချိန်ကိုဆုံးဖြတ်သည်။ 0 င်လျှင် "browser ကိုပိတ်ပြီးမမှန်ကန်ပါ" ဟုဆိုလိုသည်။

4 ။ session's အမှိုက်သရိုက်စုဆောင်းမှုယန္တရား

GC_MAXLIFTIMESTIMENE STOP ဆိုလျှင်ပင် PHP ၏အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားသည်သက်တမ်းကုန်ဆုံးတိုင်းသက်တမ်းကုန်ဆုံးသောအစည်းအဝေးကိုမရှင်းလင်းပါ။ ရှင်းလင်းခြင်း၏ဖြစ်နိုင်ခြေကိုအောက်ပါဖွဲ့စည်းမှုပစ္စည်းများဖြင့်ဆုံးဖြတ်သည်။

 session.gc_probability = 1
session.gc_divisor = 100

Session Cleanup လုပ်ခြင်း၏ 1% အခွင့်အလမ်းရှိကြောင်းဖော်ပြသည်။ လိုအပ်သလိုချိန်ညှိနိုင်ပါတယ်။

5 ။ အမှန်တကယ်စီမံကိန်းအသုံးပြုမှုအကြံပြုချက်များနှင့်ပေါင်းစပ်

  • အကယ် . သင်သည် subdomains မျိုးစုံ (ဥပမာ api.m66.net admin admin.m66.net ) ကိုလည်ပတ်နေပါက ,

  • HTTPS ကိုအသုံးပြုသောအခါ Session Security ကိုတိုးတက်စေရန်အတွက် လုံခြုံသော နှင့် httponly parameters များကိုသေချာစွာသတ်မှတ်ရန်သေချာပါစေ။

  • ဆာဗာအာကာသကိုရှောင်ရှားရန်ပုံမှန်သက်တမ်းကုန်ဆုံးသော session files များကိုပုံမှန်ဆေးကြောပါ။

6 ။ နိဂုံးချုပ်

ဆင်ခြင်တုံတရား _cookie_params များ နှင့် session.gc_maxlifetime ကိုပြင်ဆင်ခြင်းဖြင့် PHP session ၏ဘဝသံသရာကိုပြောင်းလွယ်ပြင်လွယ်ပြီးအသုံးပြုသူအဆင့်ကိုပိုမိုလုံခြုံစွာနှင့်ထိရောက်စွာစီမံနိုင်သည်။ Session_Start (session_start) မခေါ်မီဤချိန်ညှိချက်များကိုပြုလုပ်ခြင်းသည်စိတ်ကြိုက် session အပြုအမူကိုအကောင်အထည်ဖော်ရာတွင်အဓိကခြေလှမ်းဖြစ်သည်။