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 $userName ha condiviso con te l'immobile $homeName. Puoi trovarlo nella sezione 'Immobili Condivisi' su CASADOC.", "Visualizza Immobili" ], $body ); } else { // Utente non registrato $body = str_replace( ['{EMAIL_SUBJECT}', '{EMAIL_MESSAGE}', '{EMAIL_CTA}'], [ "Registrazione Necessaria", "L'utente $userName ha condiviso con te un immobile, ma devi registrarti su CASADOC per visualizzarlo.", "Registrati Ora" ], $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();