update document page
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user