<?php
session_start();
$db = new mysqli('localhost', 'radius_user', 'strong_password', 'hotspot_auth');
if ($db->connect_error) {
    die("Connection failed: " . $db->connect_error);
}

// Обработка формы
if ($_POST['phone']) {
    $mac = $_GET['mac'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'] ?? 'unknown';
    $phone = preg_replace('/\D/', '', $_POST['phone']); // Очистить номер

    $stmt = $db->prepare("INSERT INTO sessions (mac, phone_number, expires_at) VALUES (?, ?, NOW() + INTERVAL 5 MINUTE) ON DUPLICATE KEY UPDATE phone_number = ?, status = 'pending', expires_at = NOW() + INTERVAL 5 MINUTE");
    $stmt->bind_param('sss', $mac, $phone, $phone);
    $stmt->execute();

    $_SESSION['mac'] = $mac;
    header('Refresh: 10; url=auth.php?mac=' . urlencode($mac)); // Polling
}

// Получение статуса
$mac = $_GET['mac'] ?? $_SESSION['mac'] ?? '';
$status_message = '';
$show_form = true;

if ($mac) {
    $stmt = $db->prepare("SELECT status FROM sessions WHERE mac = ? AND expires_at > NOW()");
    $stmt->bind_param('s', $mac);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();

    if ($row) {
        if ($row['status'] == 'authorized') {
            $db->query("INSERT INTO logs (mac, event) VALUES ('$mac', 'authorized')");
            $status_message = "Авторизация успешна! Доступ к интернету открыт.";
            $show_form = false;
            // Redirect для Captive Portal
            echo "<script>setTimeout(() => { window.location='http://captive.apple.com/hotspot-detect.html'; }, 2000);</script>";
        } elseif ($row['status'] == 'expired') {
            $status_message = "Время ожидания истекло. Пожалуйста, попробуйте снова.";
        } else {
            $status_message = "Позвоните на номер +7XXXXXXXXXX с указанного телефона. Проверка через 10 секунд...";
        }
    } else {
        $status_message = "Введите номер телефона для авторизации.";
    }
} else {
    $status_message = "Подключитесь к гостевой сети и введите номер телефона.";
}

$db->close();
?>

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Гостевая сеть - Авторизация</title>
    <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100 flex items-center justify-center min-h-screen">
    <div class="bg-white p-8 rounded-lg shadow-lg max-w-md w-full">
        <h1 class="text-2xl font-bold text-center text-gray-800 mb-4">Гостевая сеть</h1>
        <p class="text-center text-gray-600 mb-6"><?php echo htmlspecialchars($status_message); ?></p>

        <?php if ($show_form): ?>
        <form method="POST" class="space-y-4">
            <div>
                <label for="phone" class="block text-sm font-medium text-gray-700">Номер телефона</label>
                <input type="tel" name="phone" id="phone" placeholder="+7XXXXXXXXXX" required
                       class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
            </div>
            <button type="submit"
                    class="w-full bg-indigo-600 text-white py-2 px-4 rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
                Отправить
            </button>
        </form>
        <?php endif; ?>
    </div>
</body>
</html>
