connect_error) { die(json_encode(['success' => false, 'message' => "Connessione fallita: " . $conn->connect_error])); } // Verifica se è un upload di immagine if (!empty($_FILES['photo']) && isset($_POST['idhome'])) { $idhome = intval($_POST['idhome']); $uploadDir = 'mainphoto/'; if (!file_exists($uploadDir)) { mkdir($uploadDir, 0777, true); } $file = $_FILES['photo']; $originalName = pathinfo($file['name'], PATHINFO_FILENAME); $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif']; if (!in_array($extension, $allowedExtensions)) { die(json_encode(['success' => false, 'message' => "Formato non valido. Usa JPG, PNG o GIF."])); } $newFilename = $iduserlogin . "-" . preg_replace("/[^a-zA-Z0-9]/", "", $originalName) . "-" . time() . "." . $extension; $filePath = $uploadDir . $newFilename; if (move_uploaded_file($file['tmp_name'], $filePath)) { $stmt = $conn->prepare("UPDATE home SET mainphoto = ? WHERE idhome = ?"); $stmt->bind_param("si", $newFilename, $idhome); $stmt->execute(); $stmt->close(); echo json_encode(['success' => true, 'filename' => $newFilename]); } else { echo json_encode(['success' => false, 'message' => "Errore nel salvataggio del file."]); } exit(); } // Aggiornamento di tutti i campi inviati if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['idhome'])) { $idhome = intval($_POST['idhome']); // Lista dei campi consentiti $allowedFields = [ 'name', 'comment', 'fulladdress', 'address', 'zip', 'city', 'country', 'latitude', 'longitude', 'cadastral_municipality', 'cadastral_section', 'cadastral_sheet', 'cadastral_particle', 'cadastral_sub', 'cadastral_category', 'cadastral_class', 'cadastral_surface', 'cadastral_rendita', 'cadastral_notes' ]; $updates = []; $values = []; $types = ''; // Raccogli i campi da aggiornare foreach ($_POST as $key => $value) { if (in_array($key, $allowedFields)) { $updates[] = "$key = ?"; $values[] = $conn->real_escape_string($value); $types .= 's'; // Tutti i valori sono trattati come stringhe per semplicità } } if (empty($updates)) { echo json_encode(['success' => false, 'message' => "Nessun campo valido da aggiornare."]); exit(); } // Aggiungi idhome per la WHERE clause $values[] = $idhome; $types .= 'i'; // Costruisci la query $query = "UPDATE home SET " . implode(', ', $updates) . " WHERE idhome = ?"; $stmt = $conn->prepare($query); if ($stmt === false) { die(json_encode(['success' => false, 'message' => "Errore nella preparazione della query: " . $conn->error])); } // Bind dinamico dei parametri $stmt->bind_param($types, ...$values); // Esegui la query if ($stmt->execute()) { echo json_encode(['success' => true, 'message' => 'Aggiornamento riuscito']); } else { echo json_encode(['success' => false, 'message' => 'Errore: ' . $stmt->error]); } $stmt->close(); } else { echo json_encode(['success' => false, 'message' => "Richiesta non valida."]); } $conn->close();