လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> login timeout နှင့်မည်သို့ကိုင်တွယ်ရမည်နည်း။ Automatic Logout နှင့်ပြန်လည် 0 င်ရောက်ခြင်းယန္တရားများကိုအကောင်အထည်ဖော်ရန် sessionIctostostrace ကိုသုံးပါ

login timeout နှင့်မည်သို့ကိုင်တွယ်ရမည်နည်း။ Automatic Logout နှင့်ပြန်လည် 0 င်ရောက်ခြင်းယန္တရားများကိုအကောင်အထည်ဖော်ရန် sessionIctostostrace ကိုသုံးပါ

M66 2025-06-30

1 ။ login timeout ၏အခြေခံမူများ

အသုံးပြုသူသည်အောင်မြင်စွာဝင်ရောက်နိုင်သည့်အခါစနစ်သည်၎င်းအတွက် session တစ်ခုဖန်တီးရန်စီစဉ်ထားပြီးအသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းအချက်အလက်များကို session မှတဆင့်စီမံခန့်ခွဲသည်။ အချို့သောစနစ်များတွင်လုံခြုံရေးတိုးတက်စေရန်အတွက်သို့မဟုတ်ကြာရှည်သောပျင်းရိခြင်းကြောင့်ဖြစ်ပေါ်လာသောအန္တရာယ်များကိုရှောင်ရှားရန်သို့မဟုတ်အချိန်ကြာမြင့်စွာပျင်းရိခြင်းကြောင့်အလားအလာရှိသောအန္တရာယ်များကိုရှောင်ရှားနိုင်လေ့ရှိသည်။

အသုံးများသောကုသမှုနည်းလမ်းများပါဝင်သည်:

  1. Session Readity Time Setting : အသုံးပြုသူသည်အချိန်ကာလတစ်ခုအတွင်းမည်သည့်စစ်ဆင်ရေးကိုမဆိုလုပ်ဆောင်ခြင်းမပြုပါကသင်ခန်းစာသည်အလိုအလျောက်ကုန်ဆုံးပြီးသင့်ကိုထပ်မံဝင်ရောက်ရန်လိုအပ်သည်။

  2. Front-end စောင့်ကြည့်လေ့လာခြင်း - ရှေ့ဆုံး - အဆုံးသည်အသုံးပြုသူစစ်ဆင်ရေး (ဥပမာနှိပ်ခြင်း, ကီးဘုတ်ထည့်သွင်းခြင်းစသည်တို့) ကိုစောင့်ကြည့်နိုင်သည်။ အချိန်ကုန်ပြီးတာနဲ့ Prompt box ပေါ်လာလိမ့်မယ်, အသုံးပြုသူကို log in လုပ်ဖို့လိုအပ်တယ်။

PHP ၏ SessionITICFARTATIONFACE သည် session နှင့်အချိန်ကုန်ပြ issues နာများကိုကိုင်တွယ်ရန်တိုက်ရိုက်ယန္တရားတစ်ခုပေးသည်။


2 ။ sessionItinterface မှနိဒါန်း

SessionInterface သည် PHP တွင် session စီမံခန့်ခွဲမှုအတွက် interface တစ်ခုဖြစ်သည်။ developer များက developer များကို Session IDS ၏မျိုးဆက်နှင့်စီမံခန့်ခွဲမှုများကိုစိတ်ကြိုက်ပြုပြင်ခွင့်ပြုသည်။ ဤ interface သည်အထူးသဖြင့်အလိုအလျောက်အပ်နှင်းခြင်းနှင့်သက်ဆိုင်ရာအကောင်အထည်ဖော်မှုတွင်အားသာချက်များကိုမြှင့်တင်ရန်နည်းလမ်းများကိုမြှင့်တင်ရန်နည်းလမ်းများစွာကိုပေးသည်။

1 ။ SessionInterface အတန်းကိုဖန်တီးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် sessionItincface ကိုအကောင်အထည်ဖော်သည့်အတန်းတစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။ ဤအတန်းတွင်ကျွန်ုပ်တို့သည် session timeout နှင့် login status ကိုဖြေရှင်းနိုင်သည်။

 class SessionManager implements SessionIdInterface {
    private $sessionTimeout;
    
    public function __construct($timeout = 1800) {
        $this->sessionTimeout = $timeout; // ပုံမှန်အချိန်ကုန်ရန်သတ်မှတ်ထားသည်1800စက်ဏန့်(အခုချက်ချင်း30မိနစ်)
    }

    public function startSession() {
        session_start();
        $this->checkSessionTimeout();
    }

    private function checkSessionTimeout() {
        if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity']) > $this->sessionTimeout) {
            // အချိန်ကုန်လျှင်,အလိုအလျောက် logout
            session_unset();
            session_destroy();
            header("Location: http://m66.net/login"); // login စာမျက်နှာသို့အလိုအလျောက် redirect
            exit();
        }
        $_SESSION['last_activity'] = time(); // နောက်ဆုံးစစ်ဆင်ရေးအချိန်ကို update လုပ်ပါ
    }

    public function setSessionData($key, $value) {
        $_SESSION[$key] = $value;
    }

    public function getSessionData($key) {
        return isset($_SESSION[$key]) ? $_SESSION[$key] : null;
    }

    public function destroySession() {
        session_unset();
        session_destroy();
    }
}

2 ။ sessionmanager အတန်းကိုသုံးပါ

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

 // Session Manager ကိုစတင်ပါ
$sessionManager = new SessionManager(1800); // အချိန်ကိုသတ်မှတ်ပါ1800စက်ဏန့်

// session တစ်ခုစတင်ပါ
$sessionManager->startSession();

// သင် logged in ရှိလားစစ်ဆေးပါ
if ($sessionManager->getSessionData('user_id') === null) {
    // အသုံးပြုသူကို logged မ,login စာမျက်နှာသို့ခုန်ပါ
    header("Location: http://m66.net/login");
    exit();
}

3 ။ အလိုအလျောက်အပ်နှင်းခြင်းနှင့် re-login ယန္တရား

အထက်ပါ sessionmanagager class မှတစ်ဆင့်ကျွန်ုပ်တို့သည်အလိုအလျောက်အပ်နှံစနစ်ကိုအကောင်အထည်ဖော်ရန်ဖြစ်သည်။ သတ်မှတ်ထားသည့်အချိန်သည်အချိန်သတ်မှတ်ပြီးနောက်အသုံးပြုသူကိုအလိုအလျောက် login စာမျက်နှာသို့အလိုအလျောက်ထုတ်ယူခြင်းနှင့် redirected လိမ့်မည်။ သို့သော်အလိုအလျောက်အပ်နှံခြင်းကိုအကောင်အထည်ဖော်ရန်မလုံလောက်ပါ။ အထူးသဖြင့် Session TimeOut တွင်အသုံးပြုသူအားထပ်တူ 0 င်ရန်ကြံ့ဖတ်သောအချိန်ကုန်လွန်သည့်မေးခွန်းသည်အလွန်အရေးကြီးသည်။

1 ။ Front-end prompts

ပိုမိုကောင်းမွန်သောအချက်ပြသူများအားသင့်အားရှေ့ဆုံးအဆုံးတွင်အချက်ပြမှုများပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်အသုံးပြုသူအစည်းအဝေးသည်သက်တမ်းကုန်ဆုံးတော့မည်ဆိုပါကအသုံးပြုသူအားဆက်လက် log in လုပ်မယ့်သူကိုမေးကြည့်ပါ။ သို့မဟုတ် login box ကိုအချိန်ကုန်ပြီးနောက်တိုက်ရိုက်ပေါ်လာလိမ့်မည်။

 // login အချိန်ကုန်ပြီးနောက်,retirect
header("Location: http://m66.net/login");
exit();