File: /home/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.";
}