update document page

This commit is contained in:
2025-04-22 08:05:22 +02:00
parent b63606a48c
commit 1da7ee5208
21 changed files with 6480 additions and 2970 deletions
+57 -54
View File
@@ -44,72 +44,75 @@ if (!empty($_FILES['photo']) && isset($_POST['idhome'])) {
exit();
}
// Aggiornamento AJAX degli altri campi
$idhome = isset($_POST['idhome']) ? intval($_POST['idhome']) : 0;
$field = isset($_POST['field']) ? $conn->real_escape_string($_POST['field']) : '';
$value = isset($_POST['value']) ? $conn->real_escape_string($_POST['value']) : '';
// Aggiornamento di tutti i campi inviati
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['idhome'])) {
$idhome = intval($_POST['idhome']);
// Lista dei campi consentiti per la sicurezza
$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'
];
// 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'
];
// Se il campo non è nella lista, termina lo script per evitare SQL Injection
if (!in_array($field, $allowedFields)) {
die(json_encode(['success' => false, 'message' => "Campo non valido."]));
}
$updates = [];
$values = [];
$types = '';
// Se è l'aggiornamento dell'indirizzo completo, aggiorniamo tutti i relativi campi
if ($field == 'fulladdress') {
$address = isset($_POST['address']) ? $conn->real_escape_string($_POST['address']) : '';
$city = isset($_POST['city']) ? $conn->real_escape_string($_POST['city']) : '';
$zip = isset($_POST['zip']) ? $conn->real_escape_string($_POST['zip']) : '';
$country = isset($_POST['country']) ? $conn->real_escape_string($_POST['country']) : '';
$latitude = isset($_POST['latitude']) ? $conn->real_escape_string($_POST['latitude']) : '';
$longitude = isset($_POST['longitude']) ? $conn->real_escape_string($_POST['longitude']) : '';
// 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à
}
}
error_log("Aggiornamento indirizzo: fulladdress=$value, address=$address, city=$city, zip=$zip, country=$country, latitude=$latitude, longitude=$longitude, idhome=$idhome");
if (empty($updates)) {
echo json_encode(['success' => false, 'message' => "Nessun campo valido da aggiornare."]);
exit();
}
$query = "UPDATE home SET fulladdress = ?, address = ?, city = ?, zip = ?, country = ?, latitude = ?, longitude = ? WHERE idhome = ?";
// 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]));
}
$stmt->bind_param("sssssssi", $value, $address, $city, $zip, $country, $latitude, $longitude, $idhome);
} else {
// Aggiornamento di qualsiasi altro campo
$query = "UPDATE home SET $field = ? 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->bind_param("si", $value, $idhome);
}
// Esegui la query
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Aggiornamento riuscito']);
$stmt->close();
} else {
echo json_encode(['success' => false, 'message' => 'Errore: ' . $stmt->error]);
echo json_encode(['success' => false, 'message' => "Richiesta non valida."]);
}
$stmt->close();
$conn->close();