togethere.cloud/private_html/api/deleteUser.php

86 lines
2.3 KiB
PHP

<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
// Handle preflight
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
exit(0);
}
// Konfiguracja bazy danych
$host = "localhost";
$db = "togethere_cloud";
$user = "root";
$pass = "HasloDoSQL";
try {
$pdo->exec("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");
} catch (PDOException $e) {
http_response_code(500);
echo json_encode([
'success' => false,
'error' => 'Błąd połączenia z bazą danych: ' . $e->getMessage()
], JSON_UNESCAPED_UNICODE);
exit;
}
// Pobieranie danych z POST
$input = json_decode(file_get_contents('php://input'), true);
if (!$input || !isset($input['user_id'])) {
http_response_code(400);
echo json_encode([
'success' => false,
'error' => 'Nieprawidłowe dane wejściowe'
], JSON_UNESCAPED_UNICODE);
exit;
}
$userId = (int)$input['user_id'];
if ($userId <= 0) {
http_response_code(400);
echo json_encode([
'success' => false,
'error' => 'Nieprawidłowe ID użytkownika'
], JSON_UNESCAPED_UNICODE);
exit;
}
// Sprawdzenie czy użytkownik istnieje
$stmt = $pdo->prepare("SELECT id, username FROM users WHERE id = ? AND (disabled IS NULL OR disabled = 0)");
$stmt->execute([$userId]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$user) {
http_response_code(404);
echo json_encode([
'success' => false,
'error' => 'Użytkownik nie istnieje lub jest już usunięty'
], JSON_UNESCAPED_UNICODE);
exit;
}
try {
// Zamiast usuwać, oznaczamy jako disabled
$stmt = $pdo->prepare("UPDATE users SET disabled = 1, account_suspended = 1 WHERE id = ?");
$stmt->execute([$userId]);
echo json_encode([
'success' => true,
'message' => 'Użytkownik został pomyślnie usunięty'
], JSON_UNESCAPED_UNICODE);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode([
'success' => false,
'error' => 'Błąd podczas usuwania użytkownika: ' . $e->getMessage()
], JSON_UNESCAPED_UNICODE);
}
?>