လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တစ်ခုတည်းအသုံးပြုသူ login ကန့်သတ်ချက်အကောင်အထည်ဖော်ရေးနည်းလမ်းနှင့် Code Pegocicle

PHP တစ်ခုတည်းအသုံးပြုသူ login ကန့်သတ်ချက်အကောင်အထည်ဖော်ရေးနည်းလမ်းနှင့် Code Pegocicle

M66 2025-07-28

PHP တစ်ခုတည်းအသုံးပြုသူ login ကန့်သတ်ချက်၏လိုအပ်ချက်ကိုအကောင်အထည်ဖော်ပါ

ဝက်ဘ်ဆိုက်များသို့မဟုတ်အသုံးချပရိုဂရမ်များဖွံ့ဖြိုးတိုးတက်ရေးကာလအတွင်းအသုံးပြုသူအကောင့်ကိုတစ်ချိန်တည်းတွင်လူအများစုအသုံးပြုခွင့်ကိုတားဆီးရန်အတွက်စက်တစ်ခုပေါ်တွင်သာ 0 င်ရောက်နိုင်ရန်လိုအပ်သည်။ Single-user login ကန့်သတ်ချက်များကိုအကောင်အထည်ဖော်ခြင်းသည်အကောင့်လုံခြုံမှုကိုသေချာစွာသာလုပ်နိုင်ရုံသာမကသုံးစွဲသူအစည်းအဝေးများကိုလည်းထိရောက်စွာစီမံနိုင်သည်။ ဤဆောင်းပါးသည် PHP နှင့်ဤ function ကိုမည်သို့ဖြည့်ရမည်ကိုမိတ်ဆက်ပေးရန်သတ်သတ်မှတ်မှတ်ကုဒ်များကိုပေါင်းစပ်ပါလိမ့်မည်။

ဒေတာဘေ့စဒီဇိုင်း

ပထမ ဦး စွာအသုံးပြုသူ session ကိုသတင်းအချက်အလက်များကိုသိုလှောင်ရန်အတွက်ဒေတာဇယားတစ်ခုကိုဒီဇိုင်းဆွဲရန်လိုအပ်သည်။ User_SessionS ဟုခေါ်သော User_SessionS ဟုခေါ်သောဇယားကွက်တစ်ခုကိုသင်ဖန်တီးနိုင်သည်။ Table ဖွဲ့စည်းပုံဒီဇိုင်းဥပမာမှာအောက်ပါအတိုင်းဖြစ်သည် -

 CREATE TABLE user_sessions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    session_id VARCHAR(255) NOT NULL,
    login_time TIMESTAMP NOT NULL
);

Single-user login ကန့်သတ်ချက်များကိုအကောင်အထည်ဖော်ရန် PHP Code

အောက်ပါတို့သည်တစ်ခုတည်းသောအသုံးပြုသူ login ကန့်သတ်ချက်များကိုအကောင်အထည်ဖော်ရန်အတွက်အဓိကအကြံဥာဏ်များဖြစ်သည်။

  • အသုံးပြုသူ၏မှတ်တမ်းများတွင်ပါ 0 င်သည့်အခါထူးခြားသော session ID ကိုထုတ်လုပ်ပြီးအသုံးပြုသူ ID နှင့် session id ကို user_Sessions စားပွဲတွင်သိမ်းဆည်းထားသည်။
  • အသုံးပြုသူလုပ်ဆောင်သည့်အခါတိုင်းလက်ရှိ session ID သည်ဒေတာဘေ့စ်တွင်သိုလှောင်ထားသည့် ID နှင့်ကိုက်ညီမှုရှိမရှိစစ်ဆေးပါ။ အကယ်. ၎င်းနှင့်မကိုက်ညီပါက login စာမျက်နှာသို့ကူးယူလိမ့်မည်။
  • အသုံးပြုသူမှထွက်ပေါ်လာသောအခါသက်ဆိုင်ရာ session ကိုမှတ်တမ်းတင်ပါ။

PHP ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
session_start();

// ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ
$dsn = 'mysql:host=localhost;dbname=your_database';
$username = 'your_username';
$password = 'your_password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

try {
    $dbh = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    echo 'ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $e->getMessage();
    exit();
}

// အသုံးပြုသူ login
function login($user_id) {
    global $dbh;
    $session_id = session_id();
    $login_time = date('Y-m-d H:i:s');
    
    $stmt = $dbh->prepare('INSERT INTO user_sessions (user_id, session_id, login_time) VALUES (?, ?, ?)');
    $stmt->execute([$user_id, $session_id, $login_time]);
}

// 检查အသုံးပြုသူ login状态
function check_login($user_id) {
    global $dbh;
    $session_id = session_id();
    
    $stmt = $dbh->prepare('SELECT * FROM user_sessions WHERE user_id = ? ORDER BY login_time DESC LIMIT 1');
    $stmt->execute([$user_id]);
    $row = $stmt->fetch();
    
    if ($row['session_id'] != $session_id) {
        header('Location: login.php');  // login စာမျက်နှာသို့ခုန်ပါ
        exit();
    }
}

// အသုံးပြုသူ logout
function logout($user_id) {
    global $dbh;
    $stmt = $dbh->prepare('DELETE FROM user_sessions WHERE user_id = ?');
    $stmt->execute([$user_id]);
}

// အသုံးပြုမှုဥပမာ
$user_id = 1;
if (isset($_SESSION['user_id'])) {
    check_login($_SESSION['user_id']);
} else {
    login($user_id);
}

// အခြားစစ်ဆင်ရေး
// ...

// အသုံးပြုသူ logout
// logout($user_id);

?>

အကျဉ်းချုပ်

အထက်ပါဒေတာဘေ့စ်ဒီဇိုင်းနှင့် PHP code များမှဥပမာများဖြင့် developer များသည်အသုံးပြုသူအကောင့်များကိုတစ်ချိန်တည်းတွင်တစ်ခုတည်းသောစက်တစ်ခုပေါ်တွင်သာအသုံးပြုနိုင်သည်ကိုသေချာစေရန်အခြေခံတစ်ခုတည်းသောအသုံးပြုသူ login ကန့်သတ်ရေးလုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်နိုင်သည်။ စီမံကိန်း၏အမှန်တကယ်လိုအပ်ချက်များအရသက်ဆိုင်ရာယုတ္တိဗေဒကိုထပ်မံတိုးချဲ့နိုင်ပြီးတိုးတက်အောင်လုပ်နိုင်သည်။

မကြာသေးမီ ဆောင်းပါးများ