PHP ကိုကိုင်တွယ်ရန် PHP ကိုအသုံးပြုသောအခါအထူးသဖြင့်လျစ်လျူရှုထားသည့်ပြ problem နာသည် session_start_Start () ကို မှတ်ပုံတင်ရန်မေ့နေလျှင်၎င်းသည်မျှော်လင့်ထားသည့်အတိုင်းအကောင်အထည်ဖော်မှုကိုမပြုလုပ်ပါက ဤအခြေအနေသည်မကြာခဏစတင်သည်။ ဤဆောင်းပါးသည်ဤဖြစ်စဉ်နောက်ကွယ်ရှိအခြေခံမူများကိုနက်နက်ရှိုင်းရှိုင်းခွဲခြမ်းစိတ်ဖြာပြီးကုဒ်များမှတစ်ဆင့်ရှင်းပြသည်။
PHP သည်စာမျက်နှာတောင်းဆိုမှုများအကြားသုံးစွဲသူသတင်းအချက်အလက်များကိုဆက်လက်ထိန်းသိမ်းထားရန်အတွက် Session စီမံခန့်ခွဲမှုယန္တရားများကိုပြည့်စုံစေသည်။ ဤယန္တရားသည်အဓိကအားဖြင့်အဓိကလုပ်ဆောင်ချက်သုံးခုပေါ်တွင်အဓိကထားသည်။
Session_Start () : session ကိုစတင်ရန်သို့မဟုတ်ရှိပြီးသား session ကိုပြန်ယူပါ။
$ _Session : scripts များအကြားဒေတာများကို pass လုပ်လေ့ရှိတယ်။
session_register_shutdown () - session ကိုပိတ်ထားသည့်အခါခေါ်ဆိုမှုတစ်ခုကိုမှတ်ပုံတင်ပါ။
session_register_shutdown () ၏လုပ်ဆောင်ချက်သည် session ကိုပိတ်ထားသည့်အခါအလိုအလျောက်ခေါ်ဆိုသည့် function တစ်ခုကိုမှတ်ပုံတင်ရန်ဖြစ်သည်။ session_wrave_close_Close () ကိုခေါ်သည့်အခါဤလုပ်ဆောင်ချက်ကိုကွပ်မျက်ခံရသည်။ ၎င်းသည် session_start မှဇာတ်ညွှန်း၏အဆုံးတွင်အများအားဖြင့်အလိုအလျောက်ပြုလုပ်လေ့ရှိသည်။ ဤလုပ်ဆောင်ချက်သည်များသောအားဖြင့် $ _Session ကို session သိုလှောင်မှု (ဖိုင်များ, ဒေတာဘေ့စ်စသည်တို့) သို့မှန်ကန်စွာရေးသားနိုင်ရန်အတွက်အသုံးပြုသည်။
session_register_shutdown();
register_shutdown_function(function () {
// ကျနော်တို့မှတ်တမ်းတင်ချင်တယ်ဆိုပါစို့ session အပြုအမူကိုသိမ်းပါ
file_put_contents("https://m66.net/log.txt", "Session shutdown triggered.\n", FILE_APPEND);
});
သို့သော်ကျွန်ုပ်တို့သည် session_start ကို မခေါ်ပါကဤကုဒ်၏မျှော်လင့်ထားသည့်အပြုအမူများဖြစ်ပေါ်လိမ့်မည်မဟုတ်ပါ။
အကယ်. session_start () ကိုမခေါ်ပါက PHP သည် session ပတ် 0 န်းကျင်ကိုအစပြုလိမ့်မည်မဟုတ်ပါ။ session_register_shutdown () ကိုခေါ်လျှင်ပင်အရေးအသားအတွက်အချက်အလက်များမရှိပါ။ ပို. အရေးကြီးသည်မှာ session_write_close () ကိုအလိုအလျောက်အစပျိုးမည်မဟုတ်ပါ။ အဘယ်ကြောင့်ဆိုသော် PHP ၏ရှုထောင့်မှကြည့်လျှင်ဤ script သည်မည်သည့်အစည်းအဝေးတွင်မဆိုပါ 0 င်ခြင်းမရှိပါ။
ဖိုင်ကိုမဖွင့်ဘဲအချက်အလက်များကိုသိမ်းဆည်းရန်ကြိုးစားခြင်းနှင့်တူသည်,
အောက်ပါကုဒ်ကဤအရာကိုသရုပ်ဖော်သည်။
session_register_shutdown(); // အနီးကပ် function ကိုမှတ်ပုံတင်,သို့သော် session ကိုစတင်မခံခဲ့ရပါဘူး
$_SESSION['username'] = 'Alice'; // ဒါဟာတကယ်တော့အကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ
// ၎င်းကိုကိုယ်တိုင်ဟုခေါ်သည်ဆိုပါကပင် session_write_close() မအောင်မြင်ပါ,အကေြာင်းမှာ session မစတင်သေးဘူး
session_write_close();
အထက်ပါကုဒ်ကိုအကောင်အထည်ဖော်ပြီးနောက် $ _Session သည် မည်သည့်အရာကိုမဆိုမသိမ်းဆည်းပါ,
session_register_shutdown () ကို သေချာအောင် လုပ်ခြင်းအတွက်လိုအပ်ချက်သည်စနစ်တကျအလုပ်လုပ်သည်။ အကြံပြုထားသောစံအသုံးပြုမှုပုံစံများသည်အောက်ပါအတိုင်းဖြစ်သည် -
session_start(); // session ကိုမှန်ကန်စွာစတင်ပါ
session_register_shutdown();
$_SESSION['user_id'] = 123;
// ဇာတ်ညွှန်း၏အဆုံးမှာ,PHP အလိုအလျောက်ခေါ်လိမ့်မည် session_write_close()
// ထိုအခါခလုတ် session_register_shutdown မှတ်ပုံတင်ထားသောလုပ်ဆောင်ချက်များ
ဤအမိန့်သည် session ကိုစနစ်တကျညှိနှိုင်းမှုကိုစီစဉ်ထားသည့်အတိုင်းကွပ်မျက်ရန်ဤအမိန့်သည်စနစ်တကျစတင်ရန်သေချာစေနိုင်သည်။
Session_register_shutdown () သည်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သော်လည်း၎င်းသည်လွတ်လပ်စွာအလုပ်မလုပ်ပါ။ session_start မပါဘဲ () မဖွင့်သည့်ဖိုင်သည်အကြောင်းအရာကိုရေးရန်ကြိုးစားခြင်းသည်မလွယ်ကူပါ။ Session_start () session နှင့်သက်ဆိုင်သောစစ်ဆင်ရေးများကိုမသုံးမီ session_start () ကို သေချာစွာခေါ်ဆိုပါ။ ၎င်းသည်ကောင်းမွန်သောအလေ့အကျင့်တစ်ခုသာမကကုဒ်သည်ယုံကြည်စိတ်ချရသည့်အတွက်သော့ချက်ဖြစ်သည်။
ဤယန္တရားကိုနားလည်ခြင်းအားဖြင့် developer များကသာမန်လူများကိုရှောင်ရှားနိုင်ပြီးပိုမိုခိုင်မာသည့် php application များတည်ဆောက်နိုင်သည်။