casadoc/public/userportal/save-sharing.php
2024-12-03 11:46:42 +01:00

154 lines
5.5 KiB
PHP

<?php
// Mostra errori per il debug
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include('include/headscript.php');
include('tools/mailer.php'); // Includi il file per l'invio delle email
// Connessione al database
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}
// Controlla se il metodo della richiesta è POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Recupera i dati dal form
$idhome = isset($_POST['idhome']) ? (int)$_POST['idhome'] : 0;
$shared_email = $conn->real_escape_string($_POST['shared_email']);
$role_id = isset($_POST['role_id']) ? (int)$_POST['role_id'] : null;
$sharing_type = $conn->real_escape_string($_POST['sharing_type']);
$expiration_date = !empty($_POST['expiration_date']) ? $conn->real_escape_string($_POST['expiration_date']) : null;
$shared_sections = isset($_POST['shared_sections']) ? $_POST['shared_sections'] : [];
// Prepara le sezioni condivise come stringa JSON
$sections_json = json_encode($shared_sections);
// Recupera il nome e cognome dell'utente loggato
$queryUserDetails = "SELECT first_name, last_name FROM auth_users WHERE id = ?";
$stmtUserDetails = $conn->prepare($queryUserDetails);
if ($stmtUserDetails === false) {
die("Errore nella preparazione della query: " . $conn->error);
}
$stmtUserDetails->bind_param('i', $iduserlogin);
$stmtUserDetails->execute();
$resultUserDetails = $stmtUserDetails->get_result();
$userDetails = $resultUserDetails->fetch_assoc();
$userName = $userDetails['first_name'] . ' ' . $userDetails['last_name'];
$stmtUserDetails->close();
// Controlla se l'email è associata a un utente registrato
$queryCheckUser = "SELECT id FROM auth_users WHERE email = ?";
$stmtCheckUser = $conn->prepare($queryCheckUser);
if ($stmtCheckUser === false) {
die("Errore nella preparazione della query: " . $conn->error);
}
$stmtCheckUser->bind_param('s', $shared_email);
$stmtCheckUser->execute();
$resultCheckUser = $stmtCheckUser->get_result();
// Determina lo stato e l'idshareduser
if ($resultCheckUser->num_rows > 0) {
$user = $resultCheckUser->fetch_assoc();
$idshareduser = $user['id'];
$status = 'accepted'; // Utente già registrato
} else {
$idshareduser = null;
$status = 'pending'; // Utente non registrato
}
$stmtCheckUser->close();
// Inserisce i dati nella tabella home_Sharing
$query = "INSERT INTO home_sharing (idhome, iduser, shared_email, idshareduser, role_id, sharing_type, shared_sections, expiration_date, status)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($query);
if ($stmt === false) {
die("Errore nella preparazione della query: " . $conn->error);
}
// Associa i parametri alla query
$stmt->bind_param(
'iisssssss',
$idhome,
$iduserlogin,
$shared_email,
$idshareduser,
$role_id,
$sharing_type,
$sections_json,
$expiration_date,
$status
);
// Esegue la query e controlla il risultato
if ($stmt->execute()) {
// Recupera i dettagli dell'immobile
$queryHome = $conn->prepare("SELECT name FROM home WHERE idhome = ?");
$queryHome->bind_param('i', $idhome);
$queryHome->execute();
$resultHome = $queryHome->get_result();
$home = $resultHome->fetch_assoc();
$homeName = $home['name'];
// Prepara i dettagli per l'email
$subject = "Condivisione Immobile - CASADOC";
$body = file_get_contents('templates/emails/shared_property_email.html');
if ($idshareduser) {
// Utente già registrato
$body = str_replace(
['{EMAIL_SUBJECT}', '{EMAIL_MESSAGE}', '{EMAIL_CTA}'],
[
"Condivisione Immobile",
"L'utente <strong>$userName</strong> ha condiviso con te l'immobile <strong>$homeName</strong>. Puoi trovarlo nella sezione 'Immobili Condivisi' su CASADOC.",
"<a href='https://casadoc.app/shared-properties' class='cta'>Visualizza Immobili</a>"
],
$body
);
} else {
// Utente non registrato
$body = str_replace(
['{EMAIL_SUBJECT}', '{EMAIL_MESSAGE}', '{EMAIL_CTA}'],
[
"Registrazione Necessaria",
"L'utente <strong>$userName</strong> ha condiviso con te un immobile, ma devi registrarti su CASADOC per visualizzarlo.",
"<a href='https://casadoc.app/register' class='cta'>Registrati Ora</a>"
],
$body
);
}
// Invia l'email
$mailResult = sendEmail($shared_email, $subject, $body);
if (!$mailResult['success']) {
error_log("Errore nell'invio dell'email: " . $mailResult['message']);
}
// Reindirizza alla pagina delle condivisioni con il messaggio di successo
header("Location: share-home.php?idhome=$idhome&success=1");
exit();
} else {
// Reindirizza alla pagina delle condivisioni con il messaggio di errore
header("Location: share-home.php?idhome=$idhome&error=1");
exit();
}
$stmt->close();
} else {
// Metodo non consentito
header("HTTP/1.1 405 Method Not Allowed");
echo "Metodo non consentito.";
exit();
}
$conn->close();