PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် session_cookie_params () နှင့် session_set_set_cookie_params () နှင့် session_cookie_params () သည် session နှင့်သက်ဆိုင်သော cookie parameters များကိုရယူရန်နှင့်သတ်မှတ်ရန်အသုံးပြုသောအလွန်အရေးကြီးသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့်ဤလုပ်ဆောင်မှုနှစ်ခုသည် session ၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုသေချာစေရန်အတူတကွအသုံးပြုကြသည်။ သို့သော်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသုံးပြုသောအခါအထူးဂရုပြုရန်လိုအပ်သည့်အသေးစိတ်အချက်အလက်များရှိသည်။ အထူးသဖြင့် URL မှတစ်ဆင့်ကျွန်ုပ်တို့ session cookie ၏အပြုအမူအပေါ်သက်ရောက်မှုရှိနိုင်သည်။
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 မှတဆင့်သာသုံးနိုင်သည်။
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 အားလုံးကိုသတ်မှတ်ထားကြောင်းသေချာစေသည်။
ကျွန်ုပ်တို့သည် 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
]);
}
session_set_cookie_params () cookie ၏ဒိုမိန်းအမည်ကိုသတ်မှတ်ရန်သင် session_set_cookie_params ကိုအသုံးပြုသောအခါဒိုမိန်းအမည်နှင့်လမ်းကြောင်းမှန်ကန်ကြောင်းသေချာအောင်ပြုလုပ်ရမည်။ အထူးသဖြင့် ဒိုမိန်း သတ်မှတ်ချက်များကိုပြုပြင်သည့်အခါဒိုမိန်းများအမှုများတွင်လက်ရှိလျှောက်ထားသောဒိုမိန်းအမည်နှင့်သဟဇာတဖြစ်အောင်သေချာအောင်လုပ်ပါ။
// 错误ဒိုမိန်းအမည်设置
session_set_cookie_params([
'domain' => 'otherdomain.com'
]);
ဤချိန်ညှိချက်သည် cookies များကိုလက်ရှိဒိုမိန်းအမည်အောက်တွင်မအလုပ်လုပ်ရန်ဖြစ်စေနိုင်သည်။
အမှန်တကယ်အခြေအနေအရမှန်ကန်စွာ လုံခြုံ ။ httponly အလံများကိုမှန်ကန်စွာသတ်မှတ်ထားပါ။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်ရှိဝက်ဘ်ဆိုက်များအတွက်အထူးသဖြင့် HTTPS မှတစ်ဆင့် Https မှတစ်ဆင့် လုံခြုံ ပြီး httponly options များကိုအမြဲတမ်း session လုံခြုံရေးတိုးမြှင့်ဖို့အမြဲတမ်းဖွင့်ထားသင့်သည်။
session_set_cookie_params([
'secure' => true, // သာ Pass HTTPS ပေးပို့ cookie
'httponly' => true // ဖြတ်သန်းတားဆီး JavaScript ဝင်ရောက်ခွင့် cookie
]);
တစ်သက်တာ setting သည် session cookie ၏တရားဝင်မှုကာလကိုအကျိုးသက်ရောက်လိမ့်မည်။ အကယ်. သင် session ကိုအချိန်ကြာမြင့်စွာသက်တမ်းရှိလိုပါက သက်တမ်း ကြာရှည်စွာပြုလုပ်နိုင်သည်,
session_set_cookie_params([
'lifetime' => 3600 * 24 * 30 // 30 ထိရောက်သောနေ့ရက်များ
]);
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 တွင်မှန်ကန်စွာသိုလှောင်ထားနိုင်ပြီးအခြားစာမျက်နှာများသို့လည်ပတ်သောအခါ၎င်းကိုအသုံးပြုနိုင်သည်။