Formulaire de contact
Posté : 29 janv. 2020, 11:32
Bonjour je suis bénévole dans une association de protection animal
j'ai un petit soucis aujourd’hui nous devons envoyé des fichiers pdf au futur adoptant ,Famille d’accueil pour qu'il les imprimes remplisse est sois nous les revois par la poste ou scanne et revois par mail
j'aurai aimé facilité la démarche avec un formulaire
j'en ai trouvé un qui me plais beaucoup mais la base a une erreur et je ne trouve pas la solution
Pour moi vue que dans le pdf il a beaucoup de réponse a choix multiple la fonction <input type="checkbox" serai plus simple a mettre en place
Donc je vient a vous pour me dire:
si il serai fonctionnel
si après validation je pourra redirigé la page vers une autre avec texte: nous avons bien reçus ......
avant de me lancé a refaire les 3 pages de question
le fichier :
Page : contact.php
Page : send_email.php
quand j'envoie j'ai ce message la :
Il y a une erreur dans votre formulaire :
- Remplissez tous les champs obligatoires, merci.
Merci de corriger.
Merci d'avance
Cordialement
j'ai un petit soucis aujourd’hui nous devons envoyé des fichiers pdf au futur adoptant ,Famille d’accueil pour qu'il les imprimes remplisse est sois nous les revois par la poste ou scanne et revois par mail
j'aurai aimé facilité la démarche avec un formulaire
j'en ai trouvé un qui me plais beaucoup mais la base a une erreur et je ne trouve pas la solution
Pour moi vue que dans le pdf il a beaucoup de réponse a choix multiple la fonction <input type="checkbox" serai plus simple a mettre en place
Donc je vient a vous pour me dire:
si il serai fonctionnel
si après validation je pourra redirigé la page vers une autre avec texte: nous avons bien reçus ......
avant de me lancé a refaire les 3 pages de question
le fichier :
Page : contact.php
Code : Tout sélectionner
<?php
// -----------------
// FONCTIONS utiles
/* cette fonction sert à nettoyer et enregistrer un texte */
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
return $text;
};
/* Cette fonction sert à vérifier la syntaxe d'un email */
function IsEmail($email)
{
$test = filter_var( $email, FILTER_VALIDATE_EMAIL );
return (!empty($test));
};
/* Cette fonction sert à vérifier la syntaxe d'un numéro de téléphone */
function IsTel($tel)
{
$pattern = "/^[+]?[0-9. \/]{6,20}$/"; // tél de la forme (6 à 20 caractères): +33 1 23 45 67 89 ou 0123456789 ou 01 23 45 67 89 ou 01.23.45.67.89 ou 01/23/45/67/89...
return (preg_match($pattern,$tel)); // true ou false
};
// -----------------
// INITIALISATION ou récupération des données
// formulaire envoyé, on récupère tous les champs.
$organisateur = (isset($_POST['organisateur'])) ? Rec($_POST['organisateur']) : '';
$civilite = (isset($_POST['civilite'])) ? Rec($_POST['civilite']) : '';
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$horaires = (isset($_POST['horaires'])) ? Rec($_POST['horaires']) : '';
$cp = (isset($_POST['cp'])) ? Rec($_POST['cp']) : '';
$ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
$option = (isset($_POST['option'])) ? Rec($_POST['option']) : '';
$precision = (isset($_POST['precision'])) ? Rec($_POST['precision']) : '';
// -----------------
// TRAITEMENT du formulaire (INCLUS)
$valid_form = 0;
// on teste si le formulaire a été soumis
if( isset($_POST['submit']) )
{
include(__DIR__.'/send_email.php'); // (TRAITEMENT INCLUS)
}
?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>QUESTIONNAIRE POUR ADOPTION</title>
<link rel="stylesheet" href="RV-2017.css"/>
<script src="/js/jquery.min.js"></script>
<script src="/js/responsiveslides.min.js"></script>
<script>
// You can also use "$(window).load(function() {"
$(function () {
// Slideshow 4
$("#slider4").responsiveSlides({
auto: true,
pager: false,
nav: true,
speed: 500,
namespace: "callbacks",
before: function () {
$('.events').append("<li>before event fired.</li>");
},
after: function () {
$('.events').append("<li>after event fired.</li>");
}
});
});
</script>
</head>
<body>
<!-- Début corps de la page-->
<!-- Entête et menu -->
<div class="row">
<div class="col">
<header>
<a href=""><img src="" alt="" class="style-logo" title=""/></a>
<div class="base-line"><h2>QUESTIONNAIRE POUR ADOPTION</h2>
</div>
</header>
</div>
</div>
<!-- fin Entête et menu -->
<h3>Pour avoir des renseignements merci de remplir TOUS les champs : </h3>
<h4 align="center">Si dans les 48 heures après l'envoi du formulaire vous n'avez pas de nos nouvelles<br />
N'hésitez pas à nous contacter par tel au </h4>
<p align="center">.</p>
<!-- début formulaire -->
<section>
<div class="row">
<div class="col col-md-one-half col-lg-one-third">
<form method="POST" target= "" action="">
<div class="container">
<div class="row">
<div class="col-26">
<label for="nom">Nom et Prénom*</label>
</div>
<div class="col-74">
<input type="text" id="nom" name="nom" placeholder="Vos nom et prénom" required /><br />
</div>
</div>
<div class="row">
<div class="col-26">
<label for="civilite">Civilité*</label>
</div>
<div class="col-74">
<input type="radio" name="civilite" value="madame" id="madame" /> <label for="madame">Madame</label>
<input type="radio" name="civilite" value="monsieur" id="monsieur" /> <label for="monsieur">Monsieur</label>
<br />
</div>
</div>
<div class="row">
<div class="col-26">
<label for="organisateur">Organisateur*</label>
</div>
<div class="col-74">
<input type="text" id="organisateur" name="organisateur" placeholder="Asso, CE, Comité des fêtes, Centre de Loisirs, APE, Particulier...
" required /><br />
</div>
</div>
<div class="row">
<div class="col-26">
<label for="cp">Code postal*</label>
</div>
<div class="col-74">
<input type="text" id="cp" name="cp" placeholder="Votre code postal" required /></div>
<div class="row">
<div class="col-26">
<label for="ville"> Ville*</label>
</div>
<div class="col-74">
<input type="text" id="ville" name="ville" placeholder="Votre ville" required />
<br />
</div>
</div>
<div class="row">
<div class="col-26">
<label for="email">Email*</label>
</div>
<div class="col-74">
<input type="email" id="email" name="email" placeholder="Votre email" required /><br />
</div>
</div>
<div class="row">
<div class="col-26">
<label for="tel">Téléphone*</label>
</div>
<div class="col-74">
<input type="tel" id="tel" name="tel" placeholder="Votre téléphone" required /><br />
</div>
</div>
<div class="row">
<div class="col-26">
<label for="horaires">Vos horaires</label>
</div>
<div class="col-74">
<input type="radio" name="horaires" value="hr" id="hr" /> <label for="hr">Heures de repas</label>
<input type="radio" name="horaires" value="hb" id="hb" /> <label for="hb">Heures de bureau</label>
</div>
</div>
</div>
</div>
</div>
<div class="col col-md-one-half col-lg-two-third">
<div class="container">
<div class="row">
<div class="col-26">
<label for="projet">Votre Projet*</label>
</div>
<div class="col-74">
<input type="checkbox" name="option" id="spectacle" />
<label for="spectacle">Un spectacle de clowns</label><br />
<input type="checkbox" name="option" id="fete-familliale"/>
<label for="fete-familliale">Une fête familiale</label><br />
<input type="checkbox" name="option" id="animation-commerciale" />
<label for="animation-commerciale">Une animation commerciale</label><br />
<input type="checkbox" name="option" id="autre" />
<label for="autre">Autre événement</label><br />
</div>
</div>
<div class="row">
<div class="col-26">
<label for="precision">Précisions</label>
</div>
<div class="col-74">
<textarea id="precision" name="precision" placeholder="" style="height:250px" required></textarea>
</div>
</div>
<div class="row">
<br /><br /><input type="submit" name="submit" value="Valider" required />
</div>
</div>
</div>
</form>
<!-- fin du formulaire -->
</section>
</div>
</div></body>
</html>
Code : Tout sélectionner
<?php
// TRAITEMENT du FORMULAIRE
// on teste si le formulaire a été soumis
if (isset($_POST['submit']))
{
/*
*************************************************
1- CONFIGURATION du fichier
*************************************************
*/
// destinataire : NOUS !
$destinataire = "******@gmail.com";
// Message de confirmation du mail
$message_envoye = "<h1>MERCI !</h1>
<p> </p>
<h2>Votre formulaire a bien été envoyé !</h2>
<p> </p>
<h3> </h3>";
// Message de non envoi du mail
$message_non_envoye = "Désolées l'envoi du mail a échoué, veuillez réessayer SVP.";
// Messages d'erreur du formulaire
$msg_formulaire_invalide = "Il y a une erreur dans votre formulaire :<br />";
/*
*************************************************
2- GESTION d'ERREUR
*************************************************
*/
// var_dump( $_POST ); // en TEST
if ( empty($organisateur)
|| empty($civilite)
|| empty($nom)
|| empty($email)
|| empty($tel)
|| empty($horaires)
|| empty($CP)
|| empty($ville)
|| empty($option)
|| empty($precision)
){
$valid_form = 2;
$msg_formulaire_invalide .= '- Remplissez tous les champs obligatoires, merci.<br />';
}
// Vérifie la validité de l'email
if( !empty($email) && !IsEmail($email) )
{
$valid_form = 2;
$msg_formulaire_invalide .= '- Email invalide<br />';
}
// Vérifie la validité du tel
if( !empty($tel) && !IsTel($tel) )
{
$valid_form = 2;
$msg_formulaire_invalide .= '- Numéro de téléphone invalide<br />';
}
/*
*************************************************
3- ENVOI : on génère puis envoie le mail
*************************************************
*/
// OK ? ENVOI
if ( $valid_form == 1 ) // si PAS d'erreur
{
// Objet du mail //
$objet = 'demande renseignements';
// Contenu du message //
$msg = 'Bonjour,'."\r\n\r\n";
$msg .= 'cette demande de renseignements nous arrive depuis le QUESTIONNAIRE POUR ADOPTION par '. $civilite.' '.$nom."\r\n\r\n";
$msg .= 'Pour une demande de renseignements pour :'."\r\n\r\n";
$msg .= $civilite." ";
$msg .= $nom."\r\n\r\n";
$msg .= $email."\r\n\r\n";
$msg .= $organisateur."\r\n\r\n";
$msg .= $tel." aux ";
$msg .= $horaires."\r\n\r\n";
$msg .= $cp." ";
$msg .= $ville."\r\n\r\n";
$msg .= $option."\r\n\r\n";
$msg .= $precision."\r\n";
// En-têtes de l'e-mail //
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
// echo '<pre>'.$msg.'</pre>'; // en TEST
// Envoi du mail
if (mail( $destinataire, $objet, $msg, $headers) )
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
$valid_form = 2; // ERREUR
// une des variables (ou plus) est vide ...
$msg_formulaire_invalide .= '<br /><b>Merci de corriger.</b>';
echo '<p style="color:red;">'.$msg_formulaire_invalide.'</p>'."\n";
};
} // fin TRAITEMENT du formulaire
?>
Il y a une erreur dans votre formulaire :
- Remplissez tous les champs obligatoires, merci.
Merci de corriger.
Merci d'avance
Cordialement