<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require __DIR__.'/PHPMailer/src/Exception.php';
require __DIR__.'/PHPMailer/src/PHPMailer.php';
require __DIR__.'/PHPMailer/src/SMTP.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('log_errors', 1);
header('Content-Type: application/json');

// Vérifier si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Vérifier le champ piège (honeypot) - doit être vide
    if (!empty($_POST['website'])) {
        // Si le champ piège est rempli, c'est probablement un bot
        echo json_encode(['success' => false, 'message' => 'Soumission invalide détectée.']);
        exit;
    }

    // Vérifier le timestamp
    $current_time = time();
    $submitted_time = isset($_POST['timestamp']) ? (int)$_POST['timestamp'] : 0;
    $time_diff = $current_time - $submitted_time;

    // Vérifier que le timestamp est valide (moins de 24 heures et positif)
    if ($time_diff < 0 || $time_diff > 86400) {
        echo json_encode(['success' => false, 'message' => 'Le formulaire a expiré. Veuillez actualiser la page et réessayer.']);
        exit;
    }

    // Récupérer les données du formulaire
    $nom = isset($_POST['nom']) ? strip_tags(trim($_POST['nom'])) : '';
    $prenom = isset($_POST['prenom']) ? strip_tags(trim($_POST['prenom'])) : '';
    $email = isset($_POST['email']) ? filter_var(trim($_POST['email']), FILTER_SANITIZE_EMAIL) : '';
    $telephone = isset($_POST['telephone']) ? strip_tags(trim($_POST['telephone'])) : '';
    $sujet = isset($_POST['sujet']) ? strip_tags(trim($_POST['sujet'])) : '';
    $message = isset($_POST['message']) ? trim($_POST['message']) : '';

    // Valider les entrées
    $errors = [];
    if (empty($nom)) {
        $errors[] = "Le nom est obligatoire.";
    }
    if (empty($prenom)) {
        $errors[] = "Le prénom est obligatoire.";
    }
    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $errors[] = "L'email est obligatoire et doit être valide.";
    }
    if (empty($message)) {
        $errors[] = "Le message est obligatoire.";
    }

    // Si aucune erreur, envoyer l'email
    if (empty($errors)) {
        // Configurer l'email
        /* $to = "pbrunet@alter-invest.com"; // Remplacez par votre adresse email */
        $to = "contact@jsz4n.dev"; // Remplacez par votre adresse email */
        $subject = "Nouveau message de contact: $sujet";
        $email_content = "Nom: $nom, Prenom: $prenom\n";
        $email_content .= "Email: $email\n";
        if (!empty($telephone)) {
            $email_content .= "Téléphone: $telephone\n";
        }
        $email_content .= "Sujet: $sujet\n\n";
        $email_content .= "Message:\n$message\n";

        // En-têtes de l'email
        $headers = "From: $nom $prenom <$email>\r\n";
        $headers .= "Reply-To: $email\r\n";
        $headers .= "Content-Type: text/plain; charset=UTF-8\r\n";

        #print("Sending email....");
        // Envoyer l'email
	$mail = new PHPMailer(true);
	try {
		$mail->isSMTP();
		$mail->Host = 'ssl0.ovh.net';
		$mail->SMTPAuth = true;
		$mail->Port = 465;
		$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
		$mail->Username = 'postmaster@alter-invest.com';  // Adresse MX Plan
		$mail->Password = 'm,T5D`>\dX%<R\k4t>hY';   // Mot de passe MX Plan
		$mail->setFrom('postmaster@alter-invest.com', 'Contact Site');  // From depuis vos headers
		$mail->addAddress($to);
		$mail->addReplyTo($email);  // Reply-To depuis headers
		$mail->Subject = $subject;
		$mail->Body = $email_content;
		$mail->AltBody = strip_tags($email_content);  // Version texte si HTML
		$mail->send();
		echo json_encode(['success' => true, 'message' => 'Votre message a été envoyé avec succès.']);
	} catch (Exception $e) {
		$errors[] = "Erreur envoi : {$mail->ErrorInfo}";
		echo json_encode(['success' => false, 'message' => implode('<br>', $errors)]);
	}
	exit;
    }

    // Renoyer les erreurs
    echo json_encode(['success' => false, 'message' => implode('\n', $errors)]);
    exit;
} else {
    // Si le formulaire n'a pas été soumis, renvoyer une erreur
    echo json_encode(['success' => false, 'message' => 'Requête invalide.']);
    exit;
}
?>
