handle_action.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. define("CONFIG", 1);
  3. require_once 'functions.php';
  4. // Подключаем конфигурационный файл
  5. $config_file = __DIR__ . '/config.php';
  6. if (!file_exists($config_file)) {
  7. die("Configuration file not found: $config_file");
  8. }
  9. $servers = require_once $config_file;
  10. // Проверяем AJAX-запрос
  11. if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] !== 'XMLHttpRequest') {
  12. http_response_code(403);
  13. die(json_encode(['success' => false, 'message' => 'Direct access not allowed']));
  14. }
  15. // Обработка POST-данных
  16. $server_name = $_POST['server'] ?? null;
  17. $action = $_POST['action'] ?? null;
  18. $client_name = $_POST['client'] ?? null;
  19. if (!isset($servers[$server_name])) {
  20. die(json_encode(['success' => false, 'message' => 'Invalid server']));
  21. }
  22. $server = $servers[$server_name];
  23. $result = false;
  24. try {
  25. switch ($action) {
  26. case 'ban':
  27. $result = banClient($server, $client_name);
  28. break;
  29. case 'unban':
  30. $result = unbanClient($server, $client_name);
  31. break;
  32. default:
  33. throw new Exception('Invalid action');
  34. }
  35. echo json_encode(['success' => $result]);
  36. } catch (Exception $e) {
  37. echo json_encode(['success' => false, 'message' => $e->getMessage()]);
  38. }