Files
2026-09-16 23:20:08 +07:00

80 lines
2.1 KiB
PHP

<?php
session_start();
$db_host = 'localhost';
$db_user = 'root'; // Change if needed
$db_pass = '@Samui@10742'; // Change if needed
$db_name = 'student_assignment_notify';
try {
$pdo = new PDO("mysql:host=$db_host;dbname=$db_name;charset=utf8mb4", $db_user, $db_pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$pdo->exec("CREATE TABLE IF NOT EXISTS settings (
setting_key VARCHAR(50) PRIMARY KEY,
setting_value TEXT
)");
$pdo->exec("CREATE TABLE IF NOT EXISTS activity_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NULL,
action VARCHAR(100) NOT NULL,
details TEXT,
ip_address VARCHAR(45),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
} catch (PDOException $e) {
die("Database Connection failed: " . $e->getMessage());
}
// Helper function to get setting
function getSetting($pdo, $key)
{
$stmt = $pdo->prepare("SELECT setting_value FROM settings WHERE setting_key = ?");
$stmt->execute([$key]);
$result = $stmt->fetch();
return $result ? $result['setting_value'] : null;
}
// Helper function to log activity
function logActivity($pdo, $action, $details = '')
{
$user_id = $_SESSION['user_id'] ?? null;
$ip_address = $_SERVER['REMOTE_ADDR'] ?? 'Unknown';
try {
$stmt = $pdo->prepare("INSERT INTO activity_logs (user_id, action, details, ip_address) VALUES (?, ?, ?, ?)");
$stmt->execute([$user_id, $action, $details, $ip_address]);
} catch (PDOException $e) {
// Silently ignore log insertion errors to prevent breaking the app
}
}
// Helper function to check login
function isLoggedIn()
{
return isset($_SESSION['user_id']);
}
function requireLogin()
{
if (!isLoggedIn()) {
header('Location: index.php');
exit;
}
}
function isAdmin()
{
return isset($_SESSION['role']) && $_SESSION['role'] === 'admin';
}
function requireAdmin()
{
if (!isAdmin()) {
die("Unauthorized access.");
}
}