119 lines
3.6 KiB
PHP
119 lines
3.6 KiB
PHP
<?php
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL);
|
|
|
|
include('include/headscript.php');
|
|
|
|
$conn = new mysqli($servername, $username, $password, $database);
|
|
if ($conn->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();
|