PHP တွင် session_register_shutdown () function ကို အသုံးပြု. session ကိုပိတ်ထားသည့်အခါအလိုအလျောက်ကွပ်မျက်ခံရသည့် callback function ကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။ သီအိုရီအရ၎င်းသည် script လုပ်သည့်အခါ session data ကိုအလိုအလျောက်သိမ်းဆည်းရန်ကျွန်ုပ်တို့ကိုကူညီနိုင်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် developer များစွာသည်ပြ a နာတစ်ခုနှင့်ကြုံတွေ့ခဲ့ရသည်။ အကယ်. session_register_shutdown () ဟုခေါ်သော်လည်း Session data ကိုအလိုအလျောက်သိမ်းဆည်းခြင်းမပြုနိုင်ပါ။
ဤဆောင်းပါးသည်ဤပြ problem နာ၏ရင်းမြစ်အကြောင်းရင်းများကိုအသေးစိတ်လေ့လာပြီးသင်အစည်းအဝေးများကိုအလိုအလျောက်သိမ်းဆည်းရန်အထောက်အကူပြုရန်ဖြစ်နိုင်ခြေရှိသောဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။
Session_register_shutdown () သည်အမှန်တကယ်မှာအတော်လေးနိမ့်ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ PHP သည် session data session ကိုသိမ်းဆည်းရန် Session ကိုပိတ်သည့်အခါ၎င်းသည် session_write_close () ကိုအလိုအလျောက်ခေါ်ဆိုလိမ့်မည်။ သို့သော် PHP 5.4 မှစတင်. ဤလုပ်ဆောင်ချက်သည်အချို့သောပတ်ဝန်းကျင်တွင်မတည်ငြိမ်သောလုပ်ဆောင်မှုများပြုလုပ်ပြီးအထူးသဖြင့် session_write_close () output buffer နှင့်သက်ဆိုင်သောလုပ်ငန်းများ၌သို့မဟုတ် output outpose နှင့်ဆက်စပ်သောလုပ်ငန်းများ၌မတည်ငြိမ်သောလုပ်ဆောင်မှုများပြုလုပ်သည် ။
ထို့အပြင် session_register_shutdown () session_write_close () ကို သာအလိုအလျောက်ခေါ်ဆိုသည်။ အကယ်. developer သည် session_write_close () ကို တက်ကြွစွာခေါ်ယူပါက, နောက်ဆက်တွဲခေါ်ဆိုမှုများ၏အကျိုးသက်ရောက်မှုကိုလျစ်လျူရှုထားလိမ့်မည်။
session_register_shutdown () ကိုကန့်ကွက်ခြင်းဖြစ်ကြောင်း scription_write_close () နှင့်တိုက်ရိုက်ပေါင်းစပ်ရန်မှတ်ပုံတင်ရန်အကြံပြုသည်။
နမူနာကုဒ်:
<?php
session_start();
// ဇာတ်ညွှန်း၏အဆုံးတွင်ကိုယ်တိုင်ကယ်တင်ပါ session
register_shutdown_function(function() {
session_write_close();
});
// ပြန်လည်စစ်ဆေးကြည့်ရှု session အချက်များ
$_SESSION['user'] = 'Zhang San';
echo "Session အစုံ";
?>
ဤနေရာတွင်သော့ချက်မှာ scription_write_close_Close_Clse_Close () ကို ခေါ်ယူခြင်းနှင့် session data ကိုမှန်ကန်စွာသိမ်းဆည်းထားကြောင်းနှင့် session data ကိုမှန်ကန်စွာသိမ်းဆည်းထားရန်နှင့်သေချာစေရန်အတွက်အမည်မသိလုပ်ဆောင်မှုများကိုခေါ်ယူရန်နှင့် session data များကိုမှန်ကန်စွာသိမ်းဆည်းထားရန်နှင့်သေချာစေရန်အတွက်ဖြစ်သည်။
session_write_close () ကို script ၏အခြားအစိတ်အပိုင်းများကိုခေါ်ပါကမှတ်ပုံတင်ရန်ဖုန်းခေါ်ဆိုပါက Register_shutDown_Function () သို့မဟုတ် session_register_shutdown () သို့မဟုတ် session_register_shutdown () သည်မမှန်ကန်ပါ။ ထပ်ခါတလဲလဲခေါ်ဆိုမှုများကိုရှောင်ရှားရန်ကုဒ်ကိုစစ်ဆေးရန်လိုအပ်သည်။
ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည် session ကိုအလိုအလျောက်သိမ်းဆည်းရန်ပျက်ကွက်လိမ့်မည်။
<?php
session_start();
session_write_close(); // အစောပိုင်းပိတ်လိုက် session
// မှတ်ပုံတင်ပြီးသောအခါခေါ်,တကယ်တော့ဒါဟာနောက်တဖန်အကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ
session_register_shutdown();
$_SESSION['user'] = 'li si';
echo "Session ဖြစ်ကောင်းကယ်တင်ခြင်းမရှိပါ";
?>
မှန်ကန်သောနည်းလမ်းမှာကြိုတင်ပိတ်ထားသော session_write_close () ကို ဖယ်ရှားရန်ဖြစ်သည်။
<?php
session_start();
session_register_shutdown();
$_SESSION['user'] = 'li si';
echo "Session ကယ်တင်ခြင်း";
?>
သို့သော်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားရန်ရှောင်ရှားရန်စာအရေးအသားနည်းလမ်းကိုပြောင်းလဲရန်အကြံပြုပါသည်။
အခြေအနေများမကုန်မှီအခြေအနေများမစတင်မီအခြေအနေများတွင် Session_write_Close () ကိုတိုက်ရိုက်ခေါ်ဆိုခြင်း,
<?php
session_start();
$_SESSION['cart'][] = 'ကုန်ပစ္စည်းA';
// အားလုံးစီးပွားရေးယုတ္တိဗေဒ processing ပြီးနောက်,လက်စွဲစာအုပ်အရေးအသား session
session_write_close();
echo "စျေးဝယ်လှည်းကို update လုပ်ပါ";
?>
ဤနည်းလမ်းသည်ပိုမိုသဟဇာတဖြစ်ပြီးအလိုအလျောက်မှတ်ပုံတင်ခြင်းအပေါ်မှီခိုနေရသောရှုပ်ထွေးမှုကိုရှောင်ရှားသည်။
PHP session processing အကြောင်းပိုမိုသိရှိလိုပါကတရားဝင်စာရွက်စာတမ်းများကိုဖတ်ရှုပါ။
<a href="https://m66.net/manual/zh/function.register-shutdown-function.php">PHP ရာထူးနျင့်ဆိုင်သော register_shutdown_function() စာချုပ်စာတမ်း</a>
သက်ဆိုင်သောတက်(ဂ်)များ:
session