လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> session_cache_limiter ပ conflicts ိပက်ခများကြုံတွေ့ရသည့်အခါ cache ရှေ့နောက်မညီပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်နည်း။

session_cache_limiter ပ conflicts ိပက်ခများကြုံတွေ့ရသည့်အခါ cache ရှေ့နောက်မညီပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်နည်း။

M66 2025-07-18

PHP တွင် session_cache_limiter ကို session-related caching ပေါ်လစီများကိုထိန်းချုပ်ရန်အသုံးပြုသည်။ ၎င်းသည်တုန့်ပြန်မှုခေါင်းစဉ်ရှိ cache control field ကိုသက်ရောက်သည်။ Prosess_cache_LIMIDER အတွက် settings အမျိုးမျိုးအတွက် settings မျိုးစုံရှိသည့်အခါ၎င်းသည် Cache ၏မူဝါဒပ conflicts ိပက်ခများဖြစ်ပေါ်စေပြီးစာမျက်နှာ၏အချိန်နှင့်တပြေးညီအတွေ့အကြုံများကိုထိခိုက်စေနိုင်သည်။

ဤဆောင်းပါးသည် Session_cache_limiter Settings Settings Settings Settings Settings ကိုကြုံတွေ့ရသောအခါ Cache Cachemency ကိုမည်သို့ရှောင်ရှားရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ session_cache_limiter ဆိုတာဘာလဲ။

Session_cache_limiter သည် PHP session module တွင် configuration item တွင် HTTP header တွင် cache နှင့်သက်ဆိုင်သောကွက်လပ်များကိုသတ်မှတ်သည်။ ဘုံတန်ဖိုးများမှာ:

  • nocache (default) - cache ကိုကာကွယ်ရန် HTTP ခေါင်းစီးများကိုသတ်မှတ်ပါ,

  • Public : Cache proxy ကို cache cache pages ကိုခွင့်ပြုသည်။

  • ပုဂ္ဂလိက - browser cache ကို cache ကိုခွင့်ပြုသော်လည်း proxy cache ကိုခွင့်မပြုပါ။

  • private_no_expio : ပုဂ္ဂလိက ဆင်တူပေမယ့်သက်တမ်းကုန်ဆုံးမပို့ပါဘူး။

လက်ရှိတောင်းဆိုမှုကို၏ cache ကိုမူဝါဒသည် session_cache_limiter () function ကိုခေါ်ဆိုခြင်းဖြင့်ပြောင်းလဲနိုင်သည်။

2 ။ ပ conflict ိပက်ခ၏အကြောင်းရင်းများ

  1. code များဖြင့် session_cache_limiter () ကို ထပ်ခါတလဲလဲလုပ်ခြင်းနှင့်ကွဲပြားခြားနားသောတန်ဖိုးများကိုသတ်မှတ်ပါ ဥပမာအားဖြင့်အချို့သောအစိတ်အပိုင်းတစ်ခုသည် nocache ကို သတ်မှတ်ထားပြီးအခြားတစ်ခုမှာ လူထုအား သတ်မှတ်ထားပြီးနှစ်ခုမှာပ conflicts ိပက်ခများရှိသည်။

  2. တတိယပါတီစာကြည့်တိုက်များ၏ default settings (သို့) မူဘောင်များသို့မဟုတ်မူဘောင်များနှင့်ပ conflict ိပက်ခစီးပွားရေးကုဒ်ချိန်ညှိချက်များနှင့်ပ conflict ိပက်ခ <br> <br> တတိယပါတီစာကြည့်တိုက်ကိုမိတ်ဆက်သည့်အခါ session_cache_limiter () ကိုလည်းစာကြည့်တိုက်အတွင်း၌လည်းခေါ်ဆိုနိုင်ပါသည်။

  3. PHP.ini တွင် default configuration ကို Code တွင်ရှင်းလင်းပြတ်သားစွာပ conflicts ိပက်ခများ

ဤပ conflict ိပက်ခသည် cache ပေါ်လစီသည်အကျိုးသက်ရောက်ခြင်းမရှိသောကြောင့်မကိုက်ညီသော HTTP Header သတင်းအချက်အလက်များကိုမထောက်ခံသော HTTP Header သတင်းအချက်အလက်များကိုဖြစ်ပေါ်စေလိမ့်မည်။

3 ။ ပ conflicts ိပက်ခများကိုမည်သို့ရှာဖွေတွေ့ရှိနိုင်မည်နည်း

Cache နှင့်သက်ဆိုင်သောကွက်လပ်များကိုတုန့်ပြန်မှုခေါင်းစဉ်ရှိ cache နှင့်သက်ဆိုင်သောကွက်လပ်များကို package chroub tools (Chrome developer tools tools) မှတဆင့်ကြည့်ရှုနိုင်သည်။

  • cache ကိုထိန်းချုပ်မှု

  • ကုန်ဆုံးခြင်း

  • Pragma

ကွဲပြားခြားနားသောစာမျက်နှာများသို့မဟုတ်စာမျက်နှာတောင်းဆိုမှုအကြိမ်ပေါင်းများစွာတုန့်ပြန်မှုခေါင်းဆောင်မှုသည်ကိုက်ညီမှုရှိကြောင်းသင်တွေ့ရှိပါက session_cache_limiter ချိန်ညှိချက်များပ conflicts ိပက်ခများဖြစ်နိုင်သည်။


4 ။ ဖြေရှင်းနည်း

1 ။ Cache ကန့်သတ်ချက်ကိုတူညီစွာသတ်မှတ်ပါ

session_cache_limiter () settings မျိုးစုံရှောင်ရှားရန် (ဥပမာ index.php ကဲ့သို့) စီမံကိန်းဝင်ပေါက်သို့မဟုတ်စတင်ခြင်းဖိုင်တွင်တူညီသော Project_cache_limiter () ကိုတူညီစွာခေါ်ဆိုပါ။

 <?php
// ယူနီဖောင်းကန့်သတ်ချက်ကိုကန့်သတ်ထားသည် private,browser cache ကို cache ကိုခွင့်ပြုပါ။ သို့သော် proxy cache ကိုတားမြစ်သည်
session_cache_limiter('private');

// session တစ်ခုစတင်ပါ
session_start();
?>

2 ။ Code တွင်မိတ္တူကူးခြင်းများကိုရှောင်ပါ

စီမံကိန်း၏ကွဲပြားခြားနားသော module များသည် session_cache_limiter () ဟုခေါ်ဆိုနိုင်ပါကထပ်ခါတလဲလဲခေါ်ဆိုမှုများကိုရှောင်ရှားရန် static variable များကိုသို့မဟုတ်စဉ်ဆက်မပြတ်အသုံးပြုနိုင်သည်။

 <?php
function setSessionCacheLimiterOnce($limiter = 'nocache') {
    static $isSet = false;
    if (!$isSet) {
        session_cache_limiter($limiter);
        $isSet = true;
    }
}

setSessionCacheLimiterOnce('private');
session_start();
?>

3 ။ အလိုအလျောက် cache ကန့်သတ်ချက်ကိုပိတ်ပြီး cache header ကိုကိုယ်တိုင်ထိန်းချုပ်ပါ

Session.cache_LIMIDER ကို php.ini သို့မဟုတ် code တွင်ပိတ်ပြီးပြောင်းလွယ်ပြင်လွယ်ရှိစေရန် cache header ကိုသင်ကိုယ်တိုင်သတ်မှတ်နိုင်သည်။

 <?php
// ချို့ငဲသောsessionအလိုအလျောက် cache ကိုကန့်သတ်
ini_set('session.cache_limiter', '');

// session တစ်ခုစတင်ပါ
session_start();

// ကိုယ်တိုင် cache header ကို set ကို set
header('Cache-Control: private, max-age=600, must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 600) . ' GMT');
?>

ဤအချက်သည် cache control သည်သင်၏ထိန်းချုပ်မှုအောက်တွင်လုံးဝရှိပြီး counts ` counts_cache_limiter သို့ခေါ်ဆိုမှုများစွာကြောင့်ပ conflicts ိပက်ခများကိုရှောင်ရှားသည်။


5 ။ ဥပမာ - ပြီးပြည့်စုံတဲ့အပြောင်းအလဲနဲ့လုပ်ငန်းစဉ်

 <?php
// 关闭အလိုအလျောက် cache ကိုကန့်သတ်,ပ conflicts ိပက်ခများကိုရှောင်ပါ
ini_set('session.cache_limiter', '');

// cache ခေါင်းစီး၏စည်းလုံးစီမံခန့်ခွဲမှု
function setCustomCacheHeaders() {
    header('Cache-Control: private, max-age=300, must-revalidate');
    header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 300) . ' GMT');
}

// session တစ်ခုစတင်ပါ
session_start();

// cache header ကိုသတ်မှတ်ပါ
setCustomCacheHeaders();

// စာမျက်နှာအကြောင်းအရာ output ကိုဥပမာ
echo '<h1>Session စာမျက်နှာမှကြိုဆိုပါသည်</h1>';
echo '<p>လက်ရှိအချိန်:' . date('Y-m-d H:i:s') . '</p>';
?>

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

  • Session_COCICE_LIMITER ပ conflicts ိပက်ခများသည် cache polical ကိုကျရှုံးစေလိမ့်မည်။

  • ခေါ်ဆိုမှုများစွာကိုရှောင်ရှားရန် Project_cache_LIMIDER ကို သတ်မှတ်ခြင်းသည်အကောင်းဆုံးဖြစ်သည်။

  • ရှုပ်ထွေးသောစီမံကိန်းများအတွက် PHP ၏အလိုအလျောက် cache limit ကိုပိတ်ပြီးသင်အစား cache header ကိုကိုယ်တိုင်ပိတ်ထားနိုင်သည်။

  • တုန့်ပြန်မှုခေါင်းစဉ်ကို debug လုပ်ရန် packet capture tool ကို သုံး. Cache Policy Policy ကိုချွင်းချက်ချရန်ချက်ချင်းရှာဖွေပါ။

ဆွေးနွေးခန်းက session_cache_limiter and cache header settings ကိုစီမံခြင်းသည် PHP applications များ၏တည်ငြိမ်ပြီးတသမတ်တည်း cache ကိုအပြုအမူများကိုသေချာစေရန်သော့ချက်ဖြစ်သည်။