casadoc/public/userportal/save-home.php
2025-04-22 08:05:22 +02:00

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();