<?php
// 開啟會話
session_start();

// 引入必要的文件
require_once 'includes/config.php';
require_once 'includes/functions.php';

// 如果用戶已登錄，則重定向到管理員儀錶盤
if (isLoggedIn()) {
    redirect('admin/dashboard.php');
}

// 定義變數並初始化
$username = $password = "";
$username_err = $password_err = $login_err = "";

// 處理表單提交
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // 驗證用戶名
    if (empty(trim($_POST["username"]))) {
        $username_err = "請輸入用戶名";
    } else {
        $username = trim($_POST["username"]);
    }
    
    // 驗證密碼
    if (empty(trim($_POST["password"]))) {
        $password_err = "請輸入密碼";
    } else {
        $password = trim($_POST["password"]);
    }
    
    // 驗證憑據
    if (empty($username_err) && empty($password_err)) {
        // 準備查詢語句
        $sql = "SELECT id, username, password, role FROM admin WHERE username = ?";
        
        if ($stmt = $conn->prepare($sql)) {
            // 綁定變數
            $stmt->bind_param("s", $param_username);
            
            // 設置參數
            $param_username = $username;
            
            // 執行語句
            if ($stmt->execute()) {
                // 存儲結果
                $stmt->store_result();
                
                // 檢查用戶名是否存在，如果存在則驗證密碼
                if ($stmt->num_rows == 1) {                    
                    // 綁定結果變數
                    $stmt->bind_result($id, $username, $hashed_password, $role);
                    if ($stmt->fetch()) {
                        if (password_verify($password, $hashed_password)) {
                            // 密碼正確，啟動新會話
                            session_start();
                            
                            // 存儲資料到會話變數
                            $_SESSION["admin_id"] = $id;
                            $_SESSION["admin_username"] = $username;
                            $_SESSION["admin_role"] = $role;
                            
                            // 重定向到管理員儀錶盤
                            redirect("admin/dashboard.php");
                        } else {
                            // 密碼不正確
                            $login_err = "用戶名或密碼無效";
                        }
                    }
                } else {
                    // 用戶名不存在
                    $login_err = "用戶名或密碼無效";
                }
            } else {
                $login_err = "發生錯誤，請重試";
            }
            
            // 關閉語句
            $stmt->close();
        }
    }
}

// 更新所有證件狀態
checkAndUpdateAllDocumentStatus($conn);
?>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>證件到期提醒系統 - 登錄</title>
    <link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
    <div class="login-container">
        <div class="login-form">
            <h2>證件到期提醒系統</h2>
            
            <?php 
            if(!empty($login_err)){
                echo '<div class="alert alert-danger">' . $login_err . '</div>';
            }        
            ?>

            <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
                <div class="form-group">
                    <label class="form-label">用戶名</label>
                    <input type="text" name="username" class="form-control <?php echo (!empty($username_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $username; ?>">
                    <?php if(!empty($username_err)) echo '<span class="invalid-feedback">' . $username_err . '</span>'; ?>
                </div>    
                <div class="form-group">
                    <label class="form-label">密碼</label>
                    <input type="password" name="password" class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>">
                    <?php if(!empty($password_err)) echo '<span class="invalid-feedback">' . $password_err . '</span>'; ?>
                </div>
                <div class="form-group">
                    <input type="submit" class="btn btn-primary" value="登錄">
                </div>
            </form>
        </div>
    </div>
</body>
</html>
