လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP session data ကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းခြင်းနှင့်သိုလှောင်နည်းကိုအကောင်းဆုံး

PHP session data ကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းခြင်းနှင့်သိုလှောင်နည်းကိုအကောင်းဆုံး

gitbox 2025-06-14

1 ။ နိဒါန်း

PHP 0 က်ဘ်အပလီကေးရှင်းများဖွင့်လှစ်သည့်အခါအသုံးပြုသူအဆင့်အတန်းကိုခြေရာခံရန်နှင့်သတင်းအချက်အလက်များကိုသိမ်းဆည်းရန်အစည်းအဝေးများကိုအသုံးပြုသည်။ ပုံမှန်အားဖြင့် PHP သည် server ၏ဖိုင်စနစ်ပေါ်တွင် session data ကိုသိမ်းဆည်းလိမ့်မည်။ သို့သော်အချက်အလက်များကိုဒေတာဘေ့စ်တစ်ခုအဖြစ်သိုလှောင်ခြင်းကသိုလှောင်နိုင်စွမ်းကိုတိုးတက်စေရုံသာမကပြောင်းလွယ်ပြင်လွယ်ခြင်းနှင့်ယုံကြည်စိတ်ချရမှုကိုတိုးမြှင့်ပေးသည်။ ဤဆောင်းပါးသည် PHP configuration ကိုပြုပြင်ခြင်းနှင့်စိတ်ကြိုက်ကုဒ်များရေးသားခြင်းဖြင့် Session Data သို့ Session Database သို့မည်သို့သိမ်းဆည်းရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

2 ။ ဒေတာဘေ့စ်စားပွဲတစ်ခုဖန်တီးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် session data သိုလှောင်ရန်အတွက်ဒေတာဘေ့စ်စားပွဲတစ်ခုဖန်တီးရန်လိုအပ်သည်။ စားပွဲတွင်အောက်ပါနယ်ပယ်များတွင်ပါ 0 င်နိုင်သည်။

  • sessionly တစ်ခုချင်းစီကိုသီးခြားစီဖော်ထုတ်ရန်အသုံးပြုသော Session ID ကို ID: Session ID ။
  • ဒေတာ: Session Data, အသုံးပြုသူနှင့်သက်ဆိုင်သောအချက်အလက်များကိုသိမ်းဆည်းခြင်း။
  • Timestamp: Timestamp, session ကိုဖန်တီးသည့်အချိန်ကိုမှတ်တမ်းတင်ပါ။

ဤတွင်ဒေတာဘေ့စ်စားပွဲအမည်ရှိ SQL ကြေငြာချက်ကိုဤတွင်ဖော်ပြထားသည်။

 
CREATE TABLE sessions (
  id VARCHAR(32) NOT NULL PRIMARY KEY,
  data TEXT NOT NULL,
  timestamp INT(11) NOT NULL
);

3 ။ Session ချွေတာနည်းလမ်းကိုပြုပြင်မွမ်းမံပါ

ပုံမှန်အားဖြင့် PHP စတိုးဆိုင်များသည်ဆာဗာ၏ဖိုင်စနစ်တွင်အချက်အလက်များပါ 0 င်သည်။ ဒေတာများကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းရန် PHP ၏ session processing configuration ကိုပြုပြင်ခြင်းဖြင့်၎င်းကိုအကောင်အထည်ဖော်ရန်လိုအပ်သည်။

ပထမ ဦး စွာ PHP.INI ဖိုင်ကိုဖွင့်ပြီးအောက်ပါလိုင်းနှစ်ခုကိုရှာပါ။

 
;session.save_handler = files
;session.save_path = "/tmp"

မှတ်ချက်များကိုဖယ်ရှားခြင်းနှင့်ချိန်ညှိချက်များကိုအောက်ပါအတိုင်းပြင်ဆင်ပါ -

 
session.save_handler = user
session.save_path = ""

ထို့နောက်ကျွန်ုပ်တို့သည်စိတ်ကြိုက် session handler ကိုရေးရန်လိုအပ်သည်။ PHP ဖိုင်အစတွင်အောက်ပါကုဒ်ကိုသင်ထည့်နိုင်သည်။

 
session_set_save_handler(
  'session_open',
  'session_close',
  'session_read',
  'session_write',
  'session_destroy',
  'session_gc'
);

function session_open($savePath, $sessionName) {
  return true;
}

function session_close() {
  return true;
}

function session_read($sessionId) {
  $query = "SELECT data FROM sessions WHERE id = '$sessionId'";
  // ရှာဖွေမှုကို execute နှင့်ရလဒ်များကိုရယူပါ
  return '';
}

function session_write($sessionId, $data) {
  $timestamp = time();
  // session ကိုဒေတာကို update သို့မဟုတ်ထည့်သွင်း
  return true;
}

function session_destroy($sessionId) {
  $query = "DELETE FROM sessions WHERE id = '$sessionId'";
  // တစ် ဦး delete စစ်ဆင်ရေးလုပ်ဆောင်ပါ
  return true;
}

function session_gc($maxLifetime) {
  $query = "DELETE FROM sessions WHERE timestamp < " . (time() - $maxLifetime);
  // အမှိုက်များစုဆောင်းခြင်းစစ်ဆင်ရေးကိုလုပ်ဆောင်ပါ
  return true;
}

4 ။ စမ်းသပ်မှု session ကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းပါ

အထက်ပါဖွဲ့စည်းမှုကိုဖြည့်စွက်ပြီးနောက်ကျွန်ုပ်တို့သည် session data ကိုဒေတာဘေ့စ်သို့အောင်မြင်စွာသိမ်းဆည်းနိုင်ရန်သေချာစေရန်စစ်ဆေးမှုများပြုလုပ်နိုင်သည်။

Test.php အမည်ရှိဖိုင်တစ်ခုကိုဖန်တီးပြီး session ကိုစတင်ရန်အောက်ပါကုဒ်ကိုထည့်ပါ။

 
session_start();

ထို့နောက် session data ကိုသတ်မှတ်ပါ။

 
$_SESSION['username'] = 'John Doe';
$_SESSION['email'] = '[email protected]';

စာမျက်နှာကိုလန်းဆန်းစေပြီးနောက်သင်ခန်းစာအချက်အလက်များကိုဒေတာဘေ့စ်သို့အောင်မြင်စွာသိမ်းဆည်းထားပြီးအောင်မြင်စွာသိမ်းဆည်းထားကြောင်းသင်တွေ့မြင်ရပါမည်။

Session Data ကိုရယူရန်နှင့်အသုံးပြုရန်အောက်ပါကုဒ်ကိုသုံးနိုင်သည်။

 
$username = $_SESSION['username'];
$email = $_SESSION['email'];
echo "Welcome, $username! Your email is $email.";

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

ဤဆောင်းပါးသည် PHP တွင် Session data ကိုဒေတာဘေ့စ်သို့မည်သို့သိမ်းဆည်းရမည်ကိုဖော်ပြသည်။ PHP configuration ကိုပြုပြင်ခြင်းနှင့် session ကိုင်တွယ်လုပ်ဆောင်မှုများကိုစိတ်ကြိုက်ပြုပြင်ခြင်းဖြင့်သင်ခန်းစာအချက်အလက်များကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားနိုင်ပြီးဤအချက်အလက်များကိုဖတ်ရန်နှင့်ကြိုးကိုင်ရန်ပြောင်းလွယ်ပြင်လွယ်ရှိနိုင်သည်။ ဤချဉ်းကပ်မှုသည်ပိုမိုခိုင်မာသောသိုလှောင်နိုင်စွမ်းကိုထောက်ပံ့သော်လည်း server load ကိုတိုးမြှင့်ပေးနိုင်သည်။ System တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုသေချာစေရန်သင့်လျော်စွာအကောင်းဆုံးသောပြုပြင်ပြောင်းလဲမှုများလိုအပ်သည်။