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

Session_Start ကိုခေါ်ဆိုရန်မေ့ခြင်းသည်အဘယ်ကြောင့် session_register_shutdown () ကိုကောင်းစွာအလုပ်မလုပ်စေရန်အဘယ်ကြောင့်ဖြစ်သနည်း။

M66 2025-06-02

PHP ကိုကိုင်တွယ်ရန် PHP ကိုအသုံးပြုသောအခါအထူးသဖြင့်လျစ်လျူရှုထားသည့်ပြ problem နာသည် session_start_Start () ကို မှတ်ပုံတင်ရန်မေ့နေလျှင်၎င်းသည်မျှော်လင့်ထားသည့်အတိုင်းအကောင်အထည်ဖော်မှုကိုမပြုလုပ်ပါက ဤအခြေအနေသည်မကြာခဏစတင်သည်။ ဤဆောင်းပါးသည်ဤဖြစ်စဉ်နောက်ကွယ်ရှိအခြေခံမူများကိုနက်နက်ရှိုင်းရှိုင်းခွဲခြမ်းစိတ်ဖြာပြီးကုဒ်များမှတစ်ဆင့်ရှင်းပြသည်။

1 ။ စကားပြောဆိုမှုစီမံခန့်ခွဲမှုယန္တရား၏ခြုံငုံသုံးသပ်ချက်

PHP သည်စာမျက်နှာတောင်းဆိုမှုများအကြားသုံးစွဲသူသတင်းအချက်အလက်များကိုဆက်လက်ထိန်းသိမ်းထားရန်အတွက် Session စီမံခန့်ခွဲမှုယန္တရားများကိုပြည့်စုံစေသည်။ ဤယန္တရားသည်အဓိကအားဖြင့်အဓိကလုပ်ဆောင်ချက်သုံးခုပေါ်တွင်အဓိကထားသည်။

  • Session_Start () : session ကိုစတင်ရန်သို့မဟုတ်ရှိပြီးသား session ကိုပြန်ယူပါ။

  • $ _Session : scripts များအကြားဒေတာများကို pass လုပ်လေ့ရှိတယ်။

  • session_register_shutdown () - session ကိုပိတ်ထားသည့်အခါခေါ်ဆိုမှုတစ်ခုကိုမှတ်ပုံတင်ပါ။

2 ။ session_register_shutdown () ၏အလုပ်လုပ်နိယာမ ()

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 ကို မခေါ်ပါကဤကုဒ်၏မျှော်လင့်ထားသည့်အပြုအမူများဖြစ်ပေါ်လိမ့်မည်မဟုတ်ပါ။

iii ။ 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 သည် မည်သည့်အရာကိုမဆိုမသိမ်းဆည်းပါ,

4 ။ မှန်ကန်သောအသုံးပြုမှုကိုယ်ဟန်အနေအထား

session_register_shutdown () ကို သေချာအောင် လုပ်ခြင်းအတွက်လိုအပ်ချက်သည်စနစ်တကျအလုပ်လုပ်သည်။ အကြံပြုထားသောစံအသုံးပြုမှုပုံစံများသည်အောက်ပါအတိုင်းဖြစ်သည် -

 session_start(); // session ကိုမှန်ကန်စွာစတင်ပါ

session_register_shutdown();

$_SESSION['user_id'] = 123;

// ဇာတ်ညွှန်း၏အဆုံးမှာ,PHP အလိုအလျောက်ခေါ်လိမ့်မည် session_write_close()
// ထိုအခါခလုတ် session_register_shutdown မှတ်ပုံတင်ထားသောလုပ်ဆောင်ချက်များ

ဤအမိန့်သည် session ကိုစနစ်တကျညှိနှိုင်းမှုကိုစီစဉ်ထားသည့်အတိုင်းကွပ်မျက်ရန်ဤအမိန့်သည်စနစ်တကျစတင်ရန်သေချာစေနိုင်သည်။

5 ။ အကျဉ်းချုပ်

Session_register_shutdown () သည်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သော်လည်း၎င်းသည်လွတ်လပ်စွာအလုပ်မလုပ်ပါ။ session_start မပါဘဲ () မဖွင့်သည့်ဖိုင်သည်အကြောင်းအရာကိုရေးရန်ကြိုးစားခြင်းသည်မလွယ်ကူပါ။ Session_start () session နှင့်သက်ဆိုင်သောစစ်ဆင်ရေးများကိုမသုံးမီ session_start () ကို သေချာစွာခေါ်ဆိုပါ။ ၎င်းသည်ကောင်းမွန်သောအလေ့အကျင့်တစ်ခုသာမကကုဒ်သည်ယုံကြည်စိတ်ချရသည့်အတွက်သော့ချက်ဖြစ်သည်။

ဤယန္တရားကိုနားလည်ခြင်းအားဖြင့် developer များကသာမန်လူများကိုရှောင်ရှားနိုင်ပြီးပိုမိုခိုင်မာသည့် php application များတည်ဆောက်နိုင်သည်။