<?php
// contact_handler.php - Script per gestire l'invio delle email dal form contatti

// Configurazione email
$smtp_host = 'mail.gmdssitalia.it';
$smtp_username = 'info@gmdssitalia.it';
$smtp_password = 'Unione@04';
$smtp_port = 587; // Porta standard per TLS
$from_email = 'info@gmdssitalia.it';
$to_email = 'info@gmdssitalia.it';

// Verifica che la richiesta sia POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('Location: contattaci.php?error=metodo_non_consentito');
    exit;
}

// Sanitizza e valida i dati del form
$name = isset($_POST['name']) ? trim(filter_var($_POST['name'], FILTER_SANITIZE_STRING)) : '';
$email = isset($_POST['email']) ? trim(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL)) : '';
$message = isset($_POST['message']) ? trim(filter_var($_POST['message'], FILTER_SANITIZE_STRING)) : '';

// Validazione
if (empty($name) || empty($email) || empty($message)) {
    header('Location: contattaci.php?error=campi_mancanti');
    exit;
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    header('Location: contattaci.php?error=email_non_valida');
    exit;
}

// Protezione anti-spam base
if (strpos($message, 'http://') !== false || strpos($message, 'https://') !== false) {
    header('Location: contattaci.php?error=spam_rilevato');
    exit;
}

// Costruzione del messaggio email
$subject = 'Nuovo messaggio dal sito GMDSS Italia - ' . $name;
$email_body = "
<html>
<head>
    <title>Nuovo messaggio dal sito GMDSS Italia</title>
</head>
<body>
    <h2>Nuovo messaggio dal form contatti</h2>
    <hr>
    <p><strong>Nome:</strong> " . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . "</p>
    <p><strong>Email:</strong> " . htmlspecialchars($email, ENT_QUOTES, 'UTF-8') . "</p>
    <p><strong>Data:</strong> " . date('d/m/Y H:i:s') . "</p>
    <hr>
    <h3>Messaggio:</h3>
    <p>" . nl2br(htmlspecialchars($message, ENT_QUOTES, 'UTF-8')) . "</p>
    <hr>
    <p><small>Questo messaggio è stato inviato tramite il form contatti del sito gmdssitalia.it</small></p>
</body>
</html>
";

// Headers per l'email
$headers = array(
    'MIME-Version: 1.0',
    'Content-type: text/html; charset=UTF-8',
    'From: ' . $from_email,
    'Reply-To: ' . $email,
    'X-Mailer: PHP/' . phpversion()
);

try {
    // Tentativo di invio con PHPMailer se disponibile, altrimenti mail() nativa
    if (class_exists('PHPMailer\PHPMailer\PHPMailer')) {
        // Usa PHPMailer se disponibile (metodo preferito)
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\SMTP;
        use PHPMailer\PHPMailer\Exception;
        
        $mail = new PHPMailer(true);
        
        // Configurazione SMTP
        $mail->isSMTP();
        $mail->Host = $smtp_host;
        $mail->SMTPAuth = true;
        $mail->Username = $smtp_username;
        $mail->Password = $smtp_password;
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        $mail->Port = $smtp_port;
        
        // Impostazioni email
        $mail->setFrom($from_email, 'GMDSS Italia Website');
        $mail->addAddress($to_email);
        $mail->addReplyTo($email, $name);
        
        $mail->isHTML(true);
        $mail->Subject = $subject;
        $mail->Body = $email_body;
        $mail->CharSet = 'UTF-8';
        
        $mail->send();
        $success = true;
        
    } else {
        // Fallback: usa la funzione mail() nativa di PHP
        $success = mail($to_email, $subject, $email_body, implode("\r\n", $headers));
    }
    
    if ($success) {
        // Log del messaggio inviato (opzionale)
        $log_message = date('Y-m-d H:i:s') . " - Messaggio inviato da: $name ($email)\n";
        @file_put_contents('contact_log.txt', $log_message, FILE_APPEND | LOCK_EX);
        
        // Redirect con messaggio di successo
        header('Location: contattaci.php?success=messaggio_inviato');
        exit;
    } else {
        throw new Exception('Errore nell\'invio dell\'email');
    }
    
} catch (Exception $e) {
    // Log dell'errore
    $error_log = date('Y-m-d H:i:s') . " - Errore invio email: " . $e->getMessage() . "\n";
    @file_put_contents('contact_errors.txt', $error_log, FILE_APPEND | LOCK_EX);
    
    // Redirect con messaggio di errore
    header('Location: contattaci.php?error=invio_fallito');
    exit;
}
?>