လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> session_cookie_params နှင့် session_set_set_set_set_set_cookie_params ကိုသုံးတဲ့အခါဘာကိုအာရုံစိုက်သင့်သလဲ။

session_cookie_params နှင့် session_set_set_set_set_set_cookie_params ကိုသုံးတဲ့အခါဘာကိုအာရုံစိုက်သင့်သလဲ။

gitbox 2025-06-08

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် session_cookie_params () နှင့် session_set_set_cookie_params () နှင့် session_cookie_params () သည် session နှင့်သက်ဆိုင်သော cookie parameters များကိုရယူရန်နှင့်သတ်မှတ်ရန်အသုံးပြုသောအလွန်အရေးကြီးသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့်ဤလုပ်ဆောင်မှုနှစ်ခုသည် session ၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုသေချာစေရန်အတူတကွအသုံးပြုကြသည်။ သို့သော်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသုံးပြုသောအခါအထူးဂရုပြုရန်လိုအပ်သည့်အသေးစိတ်အချက်အလက်များရှိသည်။ အထူးသဖြင့် URL မှတစ်ဆင့်ကျွန်ုပ်တို့ session cookie ၏အပြုအမူအပေါ်သက်ရောက်မှုရှိနိုင်သည်။

1 ။ session_cookie_params () function ကိုမိတ်ဆက်

session_cookie_params () function ကို function ကို cookie ၏အမည်, လမ်းကြောင်း, သက်တမ်းကုန်ဆုံးချိန်နှင့်လုံခြုံရေးအလံများအပါအ 0 င်လက်ရှိ session ၏ cookie parameters များကိုပြန်ပို့ရန်အသုံးပြုသည်။ ဤအချက်အလက်သည် browser တွင်သိမ်းဆည်းထားသော session cookies များကိုသက်ရောက်မှုရှိသည်။

 $params = session_get_cookie_params();
echo 'Cookie domain: ' . $params['domain'];  // လက်ရှိ session ကိုရယူပါ cookie ဒိုမိန်းအမည်

ဤလုပ်ဆောင်ချက်သည်အောက်ပါ key-value အတွဲများပါ 0 င်သောခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။

  • တစ်သက်တာ - cookie ၏ဘဝသံသရာ (စက္ကန့်အတွင်း) ။

  • လမ်းကြောင်း - cookie ကိုသွားတဲ့လမ်းကြောင်း။

  • ဒိုမိန်း - cookie ၏ဒိုမိန်းအမည်။

  • လုံခြုံမှု - အကယ်. မှန်ကန်သော လျှင်၎င်းသည် cookie ကို HTTPS တွင်သာပေးပို့နိုင်သည်။

  • Httponly : အကယ်. မှန်ပါသည် - အကယ်. cookie ကို HTTP protocol မှတဆင့်သာသုံးနိုင်သည်။

2 ။ session_set_set_cookie_params () function ကိုမိတ်ဆက်

session_set_cookie_params () session cookie ၏ parameters တွေကိုသတ်မှတ်ရန်အသုံးပြုသည်။ များသောအားဖြင့် session မစတင်မီလိုအပ်သော parameters တွေကိုသတ်မှတ်ရန်ဤ function ကိုသုံးပါ။

 session_set_cookie_params([
    'lifetime' => 3600,
    'path' => '/',
    'domain' => 'gitbox.net',
    'secure' => true,
    'httponly' => true
]);

ဤလုပ်ဆောင်ချက်သည် session_cookie_params တွင်ကဲ့သို့တူညီသော key-value အတွဲများပါ 0 င်သည့်ခင်းကျင်းမှုကိုလက်ခံနိုင်သည်။ ဤလုပ်ဆောင်မှုကိုပုံမှန်အားဖြင့် session_start () မတိုင်မီအသုံးပြုလေ့ရှိပြီး session ၏အစတွင် cookie configurations အားလုံးကိုသတ်မှတ်ထားကြောင်းသေချာစေသည်။

3 ။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအဘယ်ကြောင့်ပေါင်းစပ်။ အဘယ်ကြောင့်အသုံးပြုသနည်း။

ကျွန်ုပ်တို့သည် session တစ်ခုကိုလုပ်ဆောင်နေသည့်အခါ session cookie ၏ domain name ကိုပြောင်းလဲခြင်းသို့မဟုတ် cookies ၏သိုလှောင်မှုလမ်းကြောင်းကိုကန့်သတ်ခြင်းကဲ့သို့သော cookies များ၏အပြုအမူကိုညှိနှိုင်းရန်လိုအပ်နိုင်သည်။ Session_coOokie_Params () နှင့် session_set_set_cookie_params () နှင့် session_set_cookie_params () session_cookie_params () ကို အတူတကွအသုံးပြုနိုင်ရန်အတွက်အတူတကွအသုံးပြုနိုင်သည်။

ဥပမာအားဖြင့်, လက်ရှိ session ၏ cookie သည်တိကျသောဒိုမိန်းအမည်ကိုတိကျသောဒိုမိန်းအမည်ရှိသည်ဟုကျွန်ုပ်တို့သိပြီးသားဆိုပါစို့။

 $params = session_get_cookie_params();
$new_domain = 'gitbox.net';  // ဒီဒိုမိန်းအမည်ကိုသင်ပြုပြင်ချင်တယ်ဆိုပါစို့
if ($params['domain'] !== $new_domain) {
    session_set_cookie_params([
        'domain' => $new_domain
    ]);
}

4 ။ အာရုံစိုက်ဖို့အနည်းငယ်အချက်များ

4.1 ဒိုမိန်းအမည်နှင့် session cookie ၏လမ်းကြောင်း

session_set_cookie_params () cookie ၏ဒိုမိန်းအမည်ကိုသတ်မှတ်ရန်သင် session_set_cookie_params ကိုအသုံးပြုသောအခါဒိုမိန်းအမည်နှင့်လမ်းကြောင်းမှန်ကန်ကြောင်းသေချာအောင်ပြုလုပ်ရမည်။ အထူးသဖြင့် ဒိုမိန်း သတ်မှတ်ချက်များကိုပြုပြင်သည့်အခါဒိုမိန်းများအမှုများတွင်လက်ရှိလျှောက်ထားသောဒိုမိန်းအမည်နှင့်သဟဇာတဖြစ်အောင်သေချာအောင်လုပ်ပါ။

 // 错误ဒိုမိန်းအမည်设置
session_set_cookie_params([
    'domain' => 'otherdomain.com'
]);

ဤချိန်ညှိချက်သည် cookies များကိုလက်ရှိဒိုမိန်းအမည်အောက်တွင်မအလုပ်လုပ်ရန်ဖြစ်စေနိုင်သည်။

4.2 လုံခြုံပြီး httponly အမှတ်တံဆိပ်

အမှန်တကယ်အခြေအနေအရမှန်ကန်စွာ လုံခြုံhttponly အလံများကိုမှန်ကန်စွာသတ်မှတ်ထားပါ။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်ရှိဝက်ဘ်ဆိုက်များအတွက်အထူးသဖြင့် HTTPS မှတစ်ဆင့် Https မှတစ်ဆင့် လုံခြုံ ပြီး httponly options များကိုအမြဲတမ်း session လုံခြုံရေးတိုးမြှင့်ဖို့အမြဲတမ်းဖွင့်ထားသင့်သည်။

 session_set_cookie_params([
    'secure' => true,     // သာ Pass HTTPS ပေးပို့ cookie
    'httponly' => true    // ဖြတ်သန်းတားဆီး JavaScript ဝင်ရောက်ခွင့် cookie
]);

4.3 session သက်တမ်းကုန်ဆုံးချိန်

တစ်သက်တာ setting သည် session cookie ၏တရားဝင်မှုကာလကိုအကျိုးသက်ရောက်လိမ့်မည်။ အကယ်. သင် session ကိုအချိန်ကြာမြင့်စွာသက်တမ်းရှိလိုပါက သက်တမ်း ကြာရှည်စွာပြုလုပ်နိုင်သည်,

 session_set_cookie_params([
    'lifetime' => 3600 * 24 * 30  // 30 ထိရောက်သောနေ့ရက်များ
]);

5 ။ URL ကိုအသုံးပြုသည့်အခါဒိုမိန်းအမည်ရှာဖွေမှု

Session IDs များပေးပို့ခြင်းကို URLs များမှတဆင့်ပို့ဆောင်သည့်အခါသင် session id ပါ 0 င်သည့် URL ကိုပုံမှန်အားဖြင့်ထုတ်ပေးရန်လိုအပ်ပါက URL ၏ domain name သည် session cookie ၏အမည်နှင့်ကိုက်ညီကြောင်းသေချာစေသင့်သည်။ ဒီလိုမှမဟုတ်ရင် session cookie ကိုမှန်မှန်ကန်ကန်မပို့နိုင်ပါ။

ဥပမာအားဖြင့်, သင့်တွင်ဤကဲ့သို့သော URL ရှိပါက -

 $url = "http://example.com/dashboard?PHPSESSID=" . session_id();

cookie ၏ဒိုမိန်းအမည်အမည်မှာ Session_cookie_Params () ကိုသတ်မှတ်နိုင်သည်

 session_set_cookie_params([
    'domain' => 'example.com'
]);

ဤနည်းအားဖြင့်ဘရောင်ဇာသည် session id ကို cookie တွင်မှန်ကန်စွာသိုလှောင်ထားနိုင်ပြီးအခြားစာမျက်နှာများသို့လည်ပတ်သောအခါ၎င်းကိုအသုံးပြုနိုင်သည်။