271 lines
10 KiB
PHP
271 lines
10 KiB
PHP
<?php
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// ********* !! A LIRE AVANT TOUTE DIFFUSION EN DEV ET/OU PRD !! *********
|
|
//
|
|
// 1. Fichier index commun à CONSOMMATEURS et PROFESSIONNELS
|
|
// Pour passer de l'un à l'autre, il faut modifier la value de "name="source""
|
|
//
|
|
// 2. Certaines lignes sont à commenter / décommenter selon l'environnement de mise en place
|
|
// Pour passer de DEV à PRD (ou inversement), il faut modifier "MODIFIER SELON L'ENV"
|
|
//
|
|
// ************************************************************************
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
|
|
require("inc/PHPMailer.php");
|
|
require("inc/SMTP.php");
|
|
require("inc/Exception.php");
|
|
require("functions.php");
|
|
|
|
// Tableau de tous les sites pointant sur le formulaire RGPD Groupe LDC
|
|
$tSitesweb = array ('idhalal', 'tda', 'ldc', 'agis-sa', 'sbv');
|
|
$sDebug="";
|
|
|
|
// Connexion à la Bdd LDC pour récupération de la charte LDC de WP
|
|
// A MODIFIER SELON L'ENV ************
|
|
//$db = new \PDO('mysql:host=192.168.34.2;dbname=ldc2014;charset=UTF8', 'ldc2014adm', 'M86Am6Bz', array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION)); // DEV
|
|
$db = new \PDO('mysql:host=192.168.31.102;dbname=ldc_06_2020;charset=UTF8', 'ldcadm', 'u2E2Yu3pK8', array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION)); // PRD
|
|
// FIN DE MODIF. *********************
|
|
|
|
// Si j'ai des POST et que j'ai le POST du recaptcha
|
|
if(isset($_POST) && isset($_POST['g-recaptcha-response'])){
|
|
$secret = "6LcPodQUAAAAANOJ3SMyXVidfktbHFesx5VIAxsO";
|
|
$response = $_POST['g-recaptcha-response'];
|
|
|
|
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"]) && $_SERVER["HTTP_X_FORWARDED_FOR"] != ""){
|
|
if (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',')) {
|
|
$explode = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
|
|
$remoteip = trim($explode[0]);
|
|
}else{
|
|
$remoteip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
}
|
|
}else{
|
|
$remoteip = $_SERVER["REMOTE_ADDR"];
|
|
}
|
|
|
|
$api_url = "https://www.google.com/recaptcha/api/siteverify?secret=". $secret. "&response=" . $response. "&remoteip=" . $remoteip ;
|
|
$decode = json_decode(file_get_contents($api_url), true);
|
|
|
|
// Si le recaptcha et OK
|
|
if ($decode['success'] == true){
|
|
|
|
session_start();
|
|
|
|
// Déclaration d'un PHPMailer
|
|
$mail = new PHPMailer();
|
|
// Valorisation des variables pour dialoguer avec le serveur mail
|
|
configure_smtp($mail);
|
|
$bPass=false;
|
|
$sErreur="";
|
|
$sSiteweb="";
|
|
|
|
// Vérification que toutes les informations demandées ont été renseignées
|
|
if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['email'])) {
|
|
$sSource=htmlspecialchars($_POST['source']);
|
|
$sLastName=htmlspecialchars($_POST['lastname']);
|
|
$sFirstName=htmlspecialchars($_POST['firstname']);
|
|
$sMail=htmlspecialchars($_POST['email']);
|
|
$sChoice=htmlspecialchars($_POST['droits']);
|
|
$sMsg=htmlspecialchars($_POST['commentaires']);
|
|
// Vérification de la structure de l'adresse mail (la gestion d'erreur n'est pas prise en compte)
|
|
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $sMail)) {
|
|
$sErreur="La structure de l'email n'est pas correcte !";
|
|
}
|
|
// Dès qu'il y a un GET website, on ctrl selon le tab déclaré en début de code.
|
|
if (isset($_GET['website'])) {
|
|
$sSiteweb=htmlspecialchars($_GET['website']);
|
|
$bSiteOK=false;
|
|
foreach($tSitesweb as $site) {
|
|
if ($sSiteweb == $site) {
|
|
$bSiteOK=true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
// On construit le mail si pas de GET siteweb ou si le GET est OK.
|
|
if ($sSiteweb == "" || $bSiteOK == true) {
|
|
//Objet du mail
|
|
$mail->Subject = 'Nouvelles dispositions RGPD - ' . $sSource;
|
|
// Email de l'expéditeur affiché dans le mail envoyé.
|
|
$mail->From =$sMail;
|
|
// Email de l'expéditeur
|
|
$mail->Sender= $sMail;
|
|
// Nom de l'expéditeur affiché dans le mail envoyé
|
|
$mail->FromName= $sFirstName . ' ' . $sLastName;
|
|
|
|
switch ($sChoice) {
|
|
case 'check':
|
|
$right='Vérifier mes données';
|
|
break;
|
|
case 'modify':
|
|
$right='Rectifier mes données';
|
|
break;
|
|
case 'delete':
|
|
$right='Effacer mes données';
|
|
break;
|
|
case 'freeze':
|
|
$right='Geler l\'utilisation de mes données';
|
|
break;
|
|
case 'import':
|
|
$right='Emporter mes données';
|
|
break;
|
|
case 'refuse':
|
|
$right='M\'opposer à l\'utilisation de mes données';
|
|
break;
|
|
default:
|
|
$right='Aucun choix.';
|
|
break;
|
|
}
|
|
//Le contenu du mail.
|
|
if ($sSiteweb != "") {
|
|
$sBody="<b>Source : </b>" . $sSource . " (via le site web " . $sSiteweb . ")<br><br>";
|
|
} else {
|
|
$sBody="<b>Source : </b>" . $sSource . "<br><br>";
|
|
}
|
|
$sBody=$sBody . "<b>Nom : </b>" . $sLastName . "<br>";
|
|
$sBody=$sBody . "<b>Prénom : </b>" . $sFirstName . "<br>";
|
|
$sBody=$sBody . "<b>Email : </b>" . $sMail . "<br><br>";
|
|
$sBody=$sBody . "<b>L'utilisateur souhaite exercer le droit suivant :</b> " . $right . "<br><br>";
|
|
$sBody=$sBody . "<b>Message : </b>" . $sMsg;
|
|
|
|
$mail->Body = $sBody;
|
|
|
|
$bSendOK=false;
|
|
$bPass=true;
|
|
if ($mail->send()){
|
|
$bSendOK=true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
<link rel="stylesheet" href="css/style.css"/>
|
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script>
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
|
|
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
|
|
<script src='https://www.google.com/recaptcha/api.js' async defer></script>
|
|
<title>Formulaire RGPD</title>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<form method="POST">
|
|
<fieldset>
|
|
<legend>Maîtriser mes données personnelles<?php echo($sDebug);?></legend>
|
|
<p>
|
|
<label for="nom">Nom*</label>
|
|
<input type="text" name="lastname" id="nom" style="width:196px;" autofocus required>
|
|
|
|
</p>
|
|
<p>
|
|
<label for="prenom">Prénom*</label>
|
|
<input type="text" name="firstname" id="prenom" style="width:177px;" required>
|
|
</p>
|
|
<p>
|
|
<label for="courriel">Email*</label>
|
|
<input type="text" name="email" id="mail" style="width:191px;" required>
|
|
</p>
|
|
<p>
|
|
<select name="droits" id="selDroits" style="width:250px;">
|
|
<option value="ask" selected>Quel droit souhaitez-vous exercer ?</option>
|
|
<option value="check">Vérifier mes données</option>
|
|
<option value="modify">Rectifier mes données</option>
|
|
<option value="delete">Effacer mes données</option>
|
|
<option value="freeze">Geler l'utilisation de mes données</option>
|
|
<option value="import">Emporter mes données</option>
|
|
<option value="refuse">M'opposer à l'utilisation de mes données</option>
|
|
</select>
|
|
</p>
|
|
<p>
|
|
<textarea name="commentaires" id="comment" maxlength="1900" rows="10" placeholder="Informations complémentaires notamment si vous souhaitez nous expliquer les raisons de votre demande (et nous permettre d'améliorer nos services)"></textarea>
|
|
</p>
|
|
<div class="g-recaptcha" data-sitekey="6LcPodQUAAAAAEOYHMF7Et6qvzu_F3jZ3HhOlV7Q"></div>
|
|
<p class="button">
|
|
<span>
|
|
<!-- <input type="hidden" name="source" value="consommateurs"> -->
|
|
<input type="hidden" name="source" value="professionnels">
|
|
<input type="submit" value="Envoyer">
|
|
</span>
|
|
<span> </span>
|
|
<span>*champs obligatoires</span>
|
|
</p>
|
|
</fieldset>
|
|
</form>
|
|
</div>
|
|
|
|
<?php
|
|
if (isset($bSendOK)) {
|
|
?>
|
|
<div class="return">
|
|
<p>Votre demande a été transmise à nos services. Vous recevrez une réponse à l'adresse mail renseignée dans le formulaire dans les plus brefs délais. Pour plus d'informations, merci de consulter notre <a data-fancybox data-src="#charte" href="javascript:;">charte de confidentialité</a>.<br>
|
|
A bientôt <?php echo($sFirstName); ?> sur notre site !</p>
|
|
</div>
|
|
<?php
|
|
try {
|
|
$query = $db->prepare("select post_content from wp01_posts where ID = :id");
|
|
// A MODIFIER SELON L'ENVIRONNEMENT ******************
|
|
// $query->execute(['id' => 24453]); // DEV *
|
|
$query->execute(['id' => 1946]); // PRD *
|
|
// FIN DE MODIF. *************************************
|
|
} catch (\PDOException $e) {
|
|
die($e->getMessage());
|
|
}
|
|
$query->setFetchMode(\PDO::FETCH_ASSOC);
|
|
$result = $query->fetch();
|
|
$query->closeCursor();
|
|
?>
|
|
<div id="charte" style="display:none; width:80%; height:80%;">
|
|
<?= $result['post_content']; ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
else {
|
|
if (isset($bPass)) {
|
|
?>
|
|
<div class="return">
|
|
<p>La demande n'a pas été envoyée car un des champs n'a pas été correctement renseigné !</p>
|
|
</div>
|
|
<?php
|
|
}
|
|
}
|
|
?>
|
|
|
|
</body>
|
|
</html>
|