ဝက်ဘ်ဆိုက်များသို့မဟုတ်အသုံးချပရိုဂရမ်များဖွံ့ဖြိုးတိုးတက်ရေးကာလအတွင်းအသုံးပြုသူအကောင့်ကိုတစ်ချိန်တည်းတွင်လူအများစုအသုံးပြုခွင့်ကိုတားဆီးရန်အတွက်စက်တစ်ခုပေါ်တွင်သာ 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
);
အောက်ပါတို့သည်တစ်ခုတည်းသောအသုံးပြုသူ login ကန့်သတ်ချက်များကိုအကောင်အထည်ဖော်ရန်အတွက်အဓိကအကြံဥာဏ်များဖြစ်သည်။
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 ကန့်သတ်ရေးလုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်နိုင်သည်။ စီမံကိန်း၏အမှန်တကယ်လိုအပ်ချက်များအရသက်ဆိုင်ရာယုတ္တိဗေဒကိုထပ်မံတိုးချဲ့နိုင်ပြီးတိုးတက်အောင်လုပ်နိုင်သည်။