Files
gravity/ส่งออกข้อมูลประชากร HOSxP/config.php
T
2026-09-16 23:20:08 +07:00

132 lines
4.9 KiB
PHP

<?php
session_start();
// การตั้งค่าเชื่อมต่อฐานข้อมูล HOSxP (his)
define('DB_HIS_HOST', 'localhost');
define('DB_HIS_NAME', 'his');
define('DB_HIS_USER', 'root');
define('DB_HIS_PASS', '');
// การตั้งค่าเชื่อมต่อฐานข้อมูล HR (สำหรับ Login)
define('DB_HR_HOST', 'localhost');
define('DB_HR_NAME', 'hr_db');
define('DB_HR_USER', 'root');
define('DB_HR_PASS', '');
// การตั้งค่าเชื่อมต่อฐานข้อมูลประวัติ (hosxp_export_person)
define('DB_LOG_HOST', 'localhost');
define('DB_LOG_NAME', 'hosxp_export_person');
define('DB_LOG_USER', 'root');
define('DB_LOG_PASS', '');
function getDB($host, $name, $user, $pass) {
try {
$dsn = "mysql:host=$host;dbname=$name;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
return new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw $e;
}
}
// ตรวจสอบการ Login
function checkLogin() {
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
header("Location: login.php");
exit;
}
}
// ตรวจสอบสิทธิ์ผู้ดูแลระบบ (Admin)
function checkAdmin() {
checkLogin();
if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] !== true) {
// Not an admin, redirect to index
header("Location: index.php");
exit;
}
}
// แปลงวันที่ให้อยู่ในรูปแบบ วัน-เดือน-ปี(พ.ศ.)
function formatThaiDate($datetime) {
if (empty($datetime)) return '';
$timestamp = strtotime($datetime);
if (!$timestamp) return '';
$d = date('d', $timestamp);
$m = date('m', $timestamp);
$y = date('Y', $timestamp) + 543;
// Check if it has time
if (date('H:i:s', $timestamp) !== '00:00:00') {
$time = date('H:i', $timestamp);
return "$d-$m-$y $time น.";
}
return "$d-$m-$y";
}
// บันทึกประวัติการใช้งานระบบ (System Logs)
function addSystemLog($action_type, $details = '') {
try {
$log_db = getDB(DB_LOG_HOST, DB_LOG_NAME, DB_LOG_USER, DB_LOG_PASS);
$cid = isset($_SESSION['cid']) ? substr(str_replace('-', '', $_SESSION['cid']), 0, 13) : null;
$name = isset($_SESSION['fullname']) ? mb_substr($_SESSION['fullname'], 0, 100) : null;
$ip = isset($_SERVER['REMOTE_ADDR']) ? substr($_SERVER['REMOTE_ADDR'], 0, 45) : null;
$stmt = $log_db->prepare("INSERT INTO system_logs (action_type, user_cid, user_name, details, ip_address) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([$action_type, $cid, $name, $details, $ip]);
} catch (Exception $e) {
// บันทึก error ลงไฟล์ error.log เพื่อให้ตรวจสอบได้ง่ายขึ้น
error_log("addSystemLog Error: " . $e->getMessage());
}
}
// ==========================================
// System Settings Functions
// ==========================================
function getSystemSetting($key, $default = '') {
try {
$db = getDB(DB_LOG_HOST, DB_LOG_NAME, DB_LOG_USER, DB_LOG_PASS);
$stmt = $db->prepare("SELECT setting_value FROM general_settings WHERE setting_key = ?");
$stmt->execute([$key]);
$row = $stmt->fetch();
return $row ? $row['setting_value'] : $default;
} catch (PDOException $e) {
return $default;
}
}
function setSystemSetting($key, $value) {
try {
$db = getDB(DB_LOG_HOST, DB_LOG_NAME, DB_LOG_USER, DB_LOG_PASS);
$stmt = $db->prepare("INSERT INTO general_settings (setting_key, setting_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value)");
return $stmt->execute([$key, $value]);
} catch (PDOException $e) {
return false;
}
}
// Auto-create and initialize general_settings table if it doesn't exist
try {
$db = getDB(DB_LOG_HOST, DB_LOG_NAME, DB_LOG_USER, DB_LOG_PASS);
$db->exec("CREATE TABLE IF NOT EXISTS general_settings (
setting_key VARCHAR(50) PRIMARY KEY,
setting_value TEXT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;");
// Insert defaults if not exists
$db->exec("INSERT IGNORE INTO general_settings (setting_key, setting_value) VALUES
('topbar_text', 'HOSxP Mapping Data'),
('footer_text', 'หน่วยงานสุขภาพดิจิทัล โรงพยาบาลเกาะสมุย')
;");
} catch (PDOException $e) {
// Ignore error if DB connection fails during config load
}