HEX
Server: Apache
System: Linux webm002.cluster129.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: xnmprns (501243)
PHP: 8.4.10
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/x/n/m/xnmprns/www/Php/processDevis.php
<?php
session_start();

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {


    // Tarifs associés aux sous-services
    $tarifs = array(
        'Cloisons' => 47,
        'Murs très peu ou pas fissurés' => 23,
        'Murs fissurés ou très fissurés' => 58,
        'Mur en crépi à mettre en mur lisse' => 43,
        'Mur pose de toile de verre' => 18,
        'Pose de papier peint' => 15,
        'Dépose de papier peint' => 7,
        'Suppléments dépose de toile verre existantes' => 9,
        'Pose parquet stratifié' => 28,
        'Pose coco ou sisal' => 34,
        'Pose de carrelage' => 33,
        'Pose de plinthe carrelage' => 10,
        'Pose plinthe bois hydro' => 10,
        'Dépose carrelage' => 18,
        'Dépose parquet stratifié' => 22,
        'Dépose de sisal' => 24
    );

    // Récupérer les services choisis
    if (isset($_POST['servicesChoisis']) && !empty($_POST['servicesChoisis'])) {
        $servicesChoisis = json_decode($_POST['servicesChoisis'], true);
    } else {
        echo "Aucun service choisi.";
        exit;
    }

    // Récupérer et valider les informations personnelles
    $nom = isset($_POST['nom']) ? htmlspecialchars($_POST['nom']) : '';
    $numero = isset($_POST['numero']) ? htmlspecialchars($_POST['numero']) : '';
    $email = isset($_POST['email']) ? htmlspecialchars($_POST['email']) : '';
    $message = isset($_POST['message']) ? htmlspecialchars($_POST['message']) : '';

    // Vérification de l'email
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Email invalide.";
        exit;
    }

    // Calcul du total
    $totalPrix = 0;
    $recapServices = '';

    foreach ($servicesChoisis as $service) {
        $nomService = $service['service'];
        $surface = $service['surface'];

        if (isset($tarifs[$nomService])) {
            $prix = $tarifs[$nomService] * $surface;
            $totalPrix += $prix;

            // Ajouter au récapitulatif
            $recapServices .= "<li>Service: <strong>$nomService</strong>, Surface: <strong>$surface m²</strong>, Prix: <strong>" . number_format($prix, 2) . " € TTC</strong></li>";
        }
    }

    // Services supplémentaires
    $servicesSupp = '';
    if (isset($_POST['ameublements'])) {
        $servicesSupp .= "<li>Ameublement & Agencement</li>";
    }
    if (isset($_POST['salle_de_bain_wc'])) {
        $servicesSupp .= "<li>Rénovation Salle de Bain & WC</li>";
    }
    if (isset($_POST['electricite'])) {
        $servicesSupp .= "<li>Installation & Mise aux Normes Électriques</li>";
    }
    if (isset($_POST['cuisine'])) {
        $servicesSupp .= "<li>Aménagement & Rénovation de Cuisine</li>";
    }

    // Récapitulatif global formaté en HTML pour l'email
    $recapitulatif = "
    <html>
    <head>
        <style>
            body {
                font-family: Arial, sans-serif;
                background-color: #f9f9f9;
                color: #333;
                margin: 0;
                padding: 20px;
            }
            .container {
                background-color: #ffffff;
                border-radius: 8px;
                box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
                padding: 20px;
                max-width: 600px;
                margin: auto;
            }
            h2 {
                color: #2c3e50;
                border-bottom: 2px solid #2980b9;
                padding-bottom: 10px;
            }
            h3 {
                color: #2980b9;
            }
            p, ul {
                font-size: 16px;
                line-height: 1.6;
            }
            strong {
                color: #FFA02C;
            }
            ul {
                list-style-type: disc;
                padding-left: 20px;
            }
            .total {
                font-size: 18px;
                font-weight: bold;
                color: #e74c3c;
                border-top: 1px solid #ccc;
                padding-top: 10px;
                margin-top: 20px;
            }
        </style>
    </head>
    <body>
        <div class='container'>
            <h2>Votre demande de devis :</h2>
            <p><strong>Nom :</strong> $nom</p>
            <p><strong>Numéro de téléphone :</strong> $numero</p>
            <p><strong>Email :</strong> $email</p>
            <p><strong>Message :</strong> $message</p>

            <h3>Détails des services choisis :</h3>
            <ul>
                $recapServices
            </ul>

            <h3>Services supplémentaires sélectionnés :</h3>
            <ul>
                $servicesSupp
            </ul>

            <h3 class='total'>Total : <strong>" . number_format($totalPrix, 2) . " € TTC</strong></h3>
        </div>
        <p>            
            Veuillez noter que chaque projet est <strong>unique</strong>,
            et les prix affichés sont une première estimation basée sur les données fournies.
            Le prix final peut varier en fonction des <strong>spécificités</strong>
            et des ajustements nécessaires.
        </p>
    </body>
    </html>
    ";

    try {
        // Configuration du SMTP OVH 
        $mail->isSMTP();
        $mail->Host = 'ssl0.ovh.net'; // Serveur SMTP d'OVH
        $mail->SMTPAuth = true;
        $mail->Username = 'contact@xn--mp-rnovation-eeb.fr'; // Votre adresse email OVH
        $mail->Password = '%vs:.4727FZwQ[Me'; // Le mot de passe de votre email
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
        $mail->Port = 465;

        // Expéditeur et destinataire
        $mail->setFrom('contact@mp-renovation.fr', 'MP Rénovation');
        $mail->addAddress($email); // Le destinataire
        $mail->addAddress('contact@xn--mp-rnovation-eeb.fr');

        // Contenu du mail
        $mail->isHTML(true);
        $mail->Subject = 'Votre devis en ligne';
        $mail->Body = $recapitulatif;
        $mail->CharSet = 'UTF-8';

        // Envoyer l'email
        $mail->send();
        
        // Stocker le message de confirmation dans la session
        $_SESSION['confirmation_message'] = 'Votre demande de devis a bien été transmise. Nous vous recontacterons le plus vite possible. Une copie vous a été envoyée. Si vous ne la voyez pas, pensez à consulter vos indésirables.';

        // Redirection vers la page de confirmation
        header('Location: ../Pages/Confirmation.html'); // Correct usage
        exit();
    } catch (Exception $e) {
        echo "Erreur lors de l'envoi du message : {$mail->ErrorInfo}";
        
    }
} else {
    echo "Formulaire non soumis.";
}