154 lines
5.5 KiB
PHP
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();
|