Discussions sur les logiciels MLXcorp

Vous n'êtes pas identifié(e).

#1 2018-07-26 22:10:30

verso49
Membre
Lieu : Angers
Inscription : 2018-07-26
Messages : 7
Site Web

formulaire de contact

Bonjour,

J'ai utilisé ce tuto pour faire notre formulaire de contact  :

http://www.php-astux.info/script-formulaire-contact.php

Tout fonctionne parfaitement, nous recevons bien les infos, par contre le message de remerciement apparait SOUS le formulaire et même tout en bas de la page en tout petit.

Je souhaiterai que le message de remerciement s'ouvre dans une nouvelle page merci.php ou dans la même page à la place du formulaire.

voici la page sur laquelle se trouve le formulaire :
https://www.clowns-rectoverso.com/Sanstitre-1.php

Préférez-vous avoir les codes ?

Pouvez-vous m'aider, je vous en remercie par avance

Verso49 smile

Hors ligne

#2 2018-07-27 11:36:25

Matthieu
Administrateur
Inscription : 2015-06-24
Messages : 78

Re : formulaire de contact

bonjour Verso49,

il serait plus simple en effet d'avoir les 2 codes sources (ou l'unique s'il s'agit d'une seule page) afin que je puisse tester : j'ai fini par voir le massage tout en bas (en jaune sur fond blanc, difficilement lisible) et il y a peut-être une question de positionnement de balise à prendre en compte.

Hors ligne

#3 2018-07-27 16:16:48

verso49
Membre
Lieu : Angers
Inscription : 2018-07-26
Messages : 7
Site Web

Re : formulaire de contact

Bonjour,

Merci pour ta réponse rapide, oui le fond est normalement bleu, mais j'avais oublié de remettre le bon chemin (c'est réparé smile )

Voici le code du formulaire :

<?php
	// on inclue le fichier des questions/réponses
	require_once('traitement_formulaire.php');
 
	// on tire au sort une question
	$nospam = NoSpamQuestion();
?>
<!doctype html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Contactez les clowns Recto-Verso, des clowns au féminin...</title>
  <link rel="stylesheet" href="RV-2017.css"/>
</head>
<body>
<!-- Début corps de la page-->
	<!-- Entête et menu -->
	<div class="row">
    	<div class="col">  
			<header>
   				<a href="index-2017.html"><img src="images/accueil/logo.png" class="style-logo" title="Les clowns Recto-Verso"/></a>
				<div class="base-line"><h2>des clowns au f&eacute;minin...</h2>
  				</div>
   	 <!--menu--> 
        		<nav class="style-nav">
    				<ul>
						<li ><a href="../../../Recto-Verso-2017/spectacles.html">Spectacles</a></li>
						<li><a href="https://www.clowns-rectoverso.com/sculptures-sur-ballon.html">Sculptures </a></li>
            			<li><a href="../../../RV/maquillages.php">Maquillages</a></li>
						<li><a href="#">F&Ecirc;tes familiales</a></li>
            			<li><a href="#">Animations commerciales</a></li>
            			<li><a href="../../../RV/Sanstitre-2.php">Animations sportives</a></li>
                        <li><a href="../../../RV/Sanstitre-2.php">Blog</a></li>
            			<li><a href="Demande_de_renseignements-2018.html">Contact</a></li>        
      				</ul>
				</nav>
 	 	<!-- fin menu --> 
          </header>        
	  </div> 
</div>
<!-- fin Entête et menu -->
<h3>Pour avoir des renseignements merci de remplir TOUS les champs : </h3>
<h4>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 02.41.93.07.22 ou au 06.07.58.10.90</h4>
<p align="center">.</p>

   <section>
<div class="row">
	<div class="col col-md-one-half col-lg-one-third">
    <form id="contact" method="post" action="traitement_formulaire.php">
    	<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" tabindex="1" 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...
" tabindex="2" 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" tabindex="3" required /></div><br />
        	<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" tabindex="4" required /><br />
        <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" tabindex="5" 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" tabindex="6" 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="objet">Objet*</label>
      			</div>
      			<div class="col-74">
        <input type="objet" id="objet" name="objet" placeholder="Demande de renseignements" tabindex="7" required /><br />
      			</div>
             </div>   
        
    		<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" value="spectacle"/>
        	<label for="spectacle">Un spectacle de clowns</label><br />
		<input type="checkbox" name="option" id="fete-familliale" value="fete familiale" />
        	<label for="fete-familliale">Une fête familiale</label><br />
		<input type="checkbox" name="option" id="animation-sportive" value="animation-sportive" />
        	<label for="animation-sportive">Une animation sportive</label><br />
         <input type="checkbox" name="option" id="animation-commerciale" value="animation-commerciale" />
        	<label for="animation-commerciale">Une animation commerciale</label><br />   
		<input type="checkbox" name="option" id="autre" value="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="Jours et heures pour vous appeler, date et heures du spectacle, etc ..." style="height:110px" tabindex="8" required></textarea>
      			</div>
    		</div>
            <div class="row">
      			<div class="col-26">
        <label for="antispam">Antispam*</label>
      			</div>
      			<div class="col-74">
        <label for="code"><?php echo $nospam['question']; ?></label><input type="text" name="code" id="code"placeholder="répondez à la question ici"  />
	<input type="hidden" name="nospam_question" value="<?php echo $nospam['num']; ?>" /><br />
      			</div>
             </div>   
    		 <div class="row">
<input type="submit" name="envoi" value="Valider" required />
    		</div>
      </div>
    </div>   
  </form>;         
<div class="col col-md-one-half col-lg-three-third">
		<div class="container">
        <h5>BLOG</h5><br />
                <p>Toutes catégories</p>
		</div>
	</div>
</section>
<!-- Footer -->    	<p><a href="../../../Recto-Verso-2017/mentions-legales.html">Mentions légales</a> &bull; <a href="#">Plan du site</a> &bull; <a  href="../../../Recto-Verso-2017/contact.html">Contact</a><br /><a href="#">&copy; Les clowns f&eacute;minins Recto-Verso -2003/2018</a> &bull; <a href="#">Revenir en haut</a></p>
</div>
</body>
</html>
 

et celui du traitement php :

<?php
/*
	********************************************************************************************
	CONFIGURATION
	********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'webmaster clowns-rectoverso com';

// copie ? (envoie une copie au visiteur)
$copie = 'non';

// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = 'https://www.clowns-rectoverso.com/traitement_formulaire.php';

// Messages de confirmation du mail
$message_envoye = "Merci, votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
 * NoSpamQuestion affiche une question pour la validation d'un formulaire ...
 * $mode, mode question ou réponse par défaut tirage au sort de question {string}
 * $answer, lors de la demande d'une réponse à la question numero tant ... {int}
 *
 * @returns array
 *
 * Ajouter une question :
 * copier/coller ces lignes et remplir le contenu entre guillemets doubles :
 *
 * $array_pictures[$j]['num'] = $j; // ne pas changer cette ligne
 * $array_pictures[$j]['question'] = "mettre ici la question (correspondant à l'image si vous utilisez une image)";
 * $array_pictures[$j]['answer'] = "mettre ici la réponse à l'énigme";
 * $j++; // ne pas oublier cette ligne dans la copie :-)
 *
 * C'est tout. Question suivante ? :-)
 *
 */
function NoSpamQuestion($mode = 'ask', $answer = 0)
{
	$array_pictures = array(); $j = 0;

	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] = "Quelle est la cinquième lettre du mot Astux";
	$array_pictures[$j]['answer'] = "x";
	$j++;

	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] = "Le soleil est-il chaud ou froid ?";
	$array_pictures[$j]['answer'] = "chaud";
	$j++;

	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] = "Ecrire 12 en lettres";
	$array_pictures[$j]['answer'] = "douze";
	$j++;

	if ($mode != 'ans')
		{
			// on est en mode 'tirer au sort', on tire une image aléatoire
			$lambda = rand(0, count($array_pictures)-1);
			return $array_pictures[$lambda];
		}
		else
		{
			// on demande une vraie réponse
			foreach($array_pictures as $i => $array)
			{
				if ($i == $answer)
				{
					return $array;
					break;
				};
			};
		}; // Fin if ($mode != 'ans')
	};
    /*
    	********************************************************************************************
    	FIN DE LA CONFIGURATION
    	********************************************************************************************
    */
     
    // on teste si le formulaire a été soumis
    if (!isset($_POST['envoi']))
    {
    	// formulaire non envoyé
    	echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
    }
    else
    {
   		// on ne traite le formulaire que si le bouton submit a été cliqué

		if (require_once('Sanstitre-1.php')); // pour définir les images, les questions et les réponses
 
		// n'oublions pas les 2 variables du captcha :
		$code = (isset($_POST['code'])) ? strtolower($_POST['code']) : ''; // contient la réponse du visiteur
		$nospam_question = (isset($_POST['nospam_question'])) ? $_POST['nospam_question'] : ''; // contient un nombre : le numéro de la vraie réponse
 
		// On demande la vraie réponse
		$verif_nospam = NoSpamQuestion('ans', $nospam_question);
 
		// on compare la 'vraie' réponse et celle du visiteur
		if ($code != strtolower($verif_nospam['answer']))
		{
			// le formulaire s'arrête ici
			echo '<p>Vous n\'avez pas répondu correctement à la question ....</p>';
		}
		else
		{   

/*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
function Rec($text)
{
	$text = htmlspecialchars(trim($text), ENT_QUOTES);
	if (1 === get_magic_quotes_gpc())
	{
		$text = stripslashes($text);
	}

	$text = nl2br($text);
	return $text;
};

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email)
{
	$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
	return (($value === 0) || ($value === false)) ? false : true;
}

/* 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
};

// formulaire envoyé, on récupère tous les champs.
$nom       	   = (isset($_POST['nom']))          ? Rec($_POST['nom'])        : '';
$civilite      = (isset($_POST['civilite']))     ? Rec($_POST['civilite'])        : '';
$organisateur  = (isset($_POST['organisateur'])) ? Rec($_POST['organisateur'])        : '';
$cp            = (isset($_POST['cp']))           ? Rec($_POST['cp'])        : '';
$ville         = (isset($_POST['ville']))        ? Rec($_POST['ville'])        : '';
$email         = (isset($_POST['email']))        ? Rec($_POST['email'])      : '';
$tel           = (isset($_POST['tel']))          ? Rec($_POST['tel'])        : '';
$horaires      = (isset($_POST['horaires']))     ? Rec($_POST['horaires'])        : '';
$option        = (isset($_POST['option']))       ? Rec($_POST['option'])      : '';
$precision     = (isset($_POST['precision']))    ? Rec($_POST['precision'])    : '';
$objet         = (isset($_POST['objet']))        ? Rec($_POST['objet'])    : '';
$antispam_h    = (isset($_POST['antispam_h']))   ? Rec($_POST['antispam_h']) : '';
$antispam_r    = (isset($_POST['antispam_r']))   ? Rec($_POST['antispam_r']) : '';
     
    	// On va vérifier les variables et l'email ...
    	$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
     

		if (($nom != '') && ($email != '') && ($objet != ''))
		{
			// les 3 variables sont remplies, on génère puis envoie le mail
			
			 // Contenu du message //
        $message  = 'Bonjour,'."\r\n\r\n";
        $message .= 'cette demande de renseignements nous arrive depuis clowns-rectoverso.com par '. $civilite.' '.$nom."\r\n\r\n";
        $message .= 'Pour une demande de renseignements  pour :'."\r\n\r\n";
		$message .= $civilite." ";
		$message .= $nom."\r\n\r\n";
		$message .= $email."\r\n\r\n";
		$message .= $organisateur."\r\n\r\n";
		$message .= $tel." aux ";
		$message .= $horaires."\r\n\r\n";
		$message .= $cp."  ";
		$message .= $ville."\r\n\r\n";
		$message .= $option."\r\n\r\n";
		$message .= $precision."\r\n";	
			
			$headers  = 'MIME-Version: 1.0' . "\r\n";
			$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
				'Reply-To:'.$email. "\r\n" .
				'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
				'Content-Disposition: inline'. "\r\n" .
				'Content-Transfer-Encoding: 7bit'." \r\n" .
				'X-Mailer:PHP/'.phpversion();
    	
    		// envoyer une copie au visiteur ?
    		if ($copie == 'oui')
    		{
    			$cible = $destinataire.';'.$email;
    		}
    		else
    		{
    			$cible = $destinataire;
    		};
     
    		// Remplacement de certains caractères spéciaux
    		$message = str_replace("&#039;","'",$message);
    		$message = str_replace("&#8217;","'",$message);
    		$message = str_replace("&quot;",'"',$message);
    		$message = str_replace('<br>','',$message);
    		$message = str_replace('<br />','',$message);
    		$message = str_replace("&lt;","<",$message);
    		$message = str_replace("&gt;",">",$message);
    		$message = str_replace("&amp;","&",$message);
     
    		// Envoi du mail
    		$num_emails = 0;
    		$tmp = explode(';', $cible);
    		foreach($tmp as $email_destinataire)
    		{
    			if (mail($email_destinataire, $objet, $message, $headers))
    				$num_emails++;
    		}
     
    		if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
    		{
    			echo '<p>'.$message_envoye.'</p>';
    		}
    		else
    		{
    			echo '<p>'.$message_non_envoye.'</p>';
    		};
    	}
    	else
    	{
    		// une des 3 variables (ou plus) est vide ...
    		echo '<p>'.$message_formulaire_invalide.' <a href="Sanstitre-1.php">Retour au formulaire</a></p>'."\n";
    	};
			echo '<p>Merci pour votre participation ...</p>';
		};
}; // fin du if (!isset($_POST['envoi']))
    ?>
 

Encore merci  de te pencher sur notre "petit" soucis

Verso49  tongue

Hors ligne

#4 2018-07-27 18:35:40

Matthieu
Administrateur
Inscription : 2015-06-24
Messages : 78

Re : formulaire de contact

j'ai compris l'explication.

Dans votre code, dans "traitement.php" il y a cette ligne :

if (require_once('Sanstitre-1.php')); // pour définir les images, les questions et les réponses

sauf que
1) le require va s'exécuter, donc appeler TOUTE la page Sans-Titre1, donc afficher l'HTML, etc. d'où la réponse qui arrive APRES
2) cette condition est quasi toujours vraie, do,nc la page HTML "sans titre 1" sera toujours affichée AVANT la réponse du formulaire.

pour corriger, il faudrait faire une page unique, nommée "sans titre 1" (laissons le nom de fichier même s'il n'est pas judicieux) contenant le formulaire modifié comme ceci (cas du formulaire sur 1 seule page)

<?php
	// on inclue le fichier des questions/réponses
	require_once('traitement_formulaire.php');

	// on tire au sort une question
	$nospam = NoSpamQuestion();
?>
<!doctype html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Contactez les clowns Recto-Verso, des clowns au féminin...</title>
  <link rel="stylesheet" href="RV-2017.css"/>
</head>
<body>
<!-- Début corps de la page-->
	<!-- Entête et menu -->
	<div class="row">
    	<div class="col">
			<header>
   				<a href="index-2017.html"><img src="images/accueil/logo.png" class="style-logo" title="Les clowns Recto-Verso"/></a>
				<div class="base-line"><h2>des clowns au f&eacute;minin...</h2>
  				</div>
   	 <!--menu-->
        		<nav class="style-nav">
    				<ul>
						<li ><a href="../../../Recto-Verso-2017/spectacles.html">Spectacles</a></li>
						<li><a href="https://www.clowns-rectoverso.com/sculptures-sur-ballon.html">Sculptures </a></li>
            			<li><a href="../../../RV/maquillages.php">Maquillages</a></li>
						<li><a href="#">F&Ecirc;tes familiales</a></li>
            			<li><a href="#">Animations commerciales</a></li>
            			<li><a href="../../../RV/Sanstitre-2.php">Animations sportives</a></li>
                        <li><a href="../../../RV/Sanstitre-2.php">Blog</a></li>
            			<li><a href="Demande_de_renseignements-2018.html">Contact</a></li>
      				</ul>
				</nav>
 	 	<!-- fin menu -->
          </header>
	  </div>
</div>
<!-- fin Entête et menu -->
<h3>Pour avoir des renseignements merci de remplir TOUS les champs : </h3>
<h4>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 02.41.93.07.22 ou au 06.07.58.10.90</h4>
<p align="center">.</p>

   <section>
<div class="row">
	<div class="col col-md-one-half col-lg-one-third">
<?php
	// MLX : test formulaire
	if (!isset($_POST['envoi']))
	{
?>
    <form id="contact" method="post" 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" tabindex="1" 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...
" tabindex="2" 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" tabindex="3" required /></div><br />
        	<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" tabindex="4" required /><br />
        <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" tabindex="5" 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" tabindex="6" 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="objet">Objet*</label>
      			</div>
      			<div class="col-74">
        <input type="objet" id="objet" name="objet" placeholder="Demande de renseignements" tabindex="7" required /><br />
      			</div>
             </div>

    		<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" value="spectacle"/>
        	<label for="spectacle">Un spectacle de clowns</label><br />
		<input type="checkbox" name="option" id="fete-familliale" value="fete familiale" />
        	<label for="fete-familliale">Une fête familiale</label><br />
		<input type="checkbox" name="option" id="animation-sportive" value="animation-sportive" />
        	<label for="animation-sportive">Une animation sportive</label><br />
         <input type="checkbox" name="option" id="animation-commerciale" value="animation-commerciale" />
        	<label for="animation-commerciale">Une animation commerciale</label><br />
		<input type="checkbox" name="option" id="autre" value="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="Jours et heures pour vous appeler, date et heures du spectacle, etc ..." style="height:110px" tabindex="8" required></textarea>
      			</div>
    		</div>
            <div class="row">
      			<div class="col-26">
        <label for="antispam">Antispam*</label>
      			</div>
      			<div class="col-74">
        <label for="code"><?php echo $nospam['question']; ?></label><input type="text" name="code" id="code"placeholder="répondez à la question ici"  />
	<input type="hidden" name="nospam_question" value="<?php echo $nospam['num']; ?>" /><br />
      			</div>
             </div>
    		 <div class="row">
<input type="submit" name="envoi" value="Valider" required />
    		</div>
      </div>
    </div>
  </form>
<?php
	}
	else
	{
   		// on ne traite le formulaire que si le bouton submit a été cliqué

		//if (require_once('Sanstitre-1.php')); // pour définir les images, les questions et les réponses

		// n'oublions pas les 2 variables du captcha :
		$code = (isset($_POST['code'])) ? strtolower($_POST['code']) : ''; // contient la réponse du visiteur
		$nospam_question = (isset($_POST['nospam_question'])) ? $_POST['nospam_question'] : ''; // contient un nombre : le numéro de la vraie réponse

		// On demande la vraie réponse
		$verif_nospam = NoSpamQuestion('ans', $nospam_question);

		// on compare la 'vraie' réponse et celle du visiteur
		if ($code != strtolower($verif_nospam['answer']))
		{
			// le formulaire s'arrête ici
			echo '<p>Vous n\'avez pas répondu correctement à la question ....</p>';
		}
		else
		{

/*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
function Rec($text)
{
	$text = htmlspecialchars(trim($text), ENT_QUOTES);
	if (1 === get_magic_quotes_gpc())
	{
		$text = stripslashes($text);
	}

	$text = nl2br($text);
	return $text;
};

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email)
{
	$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
	return (($value === 0) || ($value === false)) ? false : true;
}

/* 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
};

// formulaire envoyé, on récupère tous les champs.
$nom       	   = (isset($_POST['nom']))          ? Rec($_POST['nom'])        : '';
$civilite      = (isset($_POST['civilite']))     ? Rec($_POST['civilite'])        : '';
$organisateur  = (isset($_POST['organisateur'])) ? Rec($_POST['organisateur'])        : '';
$cp            = (isset($_POST['cp']))           ? Rec($_POST['cp'])        : '';
$ville         = (isset($_POST['ville']))        ? Rec($_POST['ville'])        : '';
$email         = (isset($_POST['email']))        ? Rec($_POST['email'])      : '';
$tel           = (isset($_POST['tel']))          ? Rec($_POST['tel'])        : '';
$horaires      = (isset($_POST['horaires']))     ? Rec($_POST['horaires'])        : '';
$option        = (isset($_POST['option']))       ? Rec($_POST['option'])      : '';
$precision     = (isset($_POST['precision']))    ? Rec($_POST['precision'])    : '';
$objet         = (isset($_POST['objet']))        ? Rec($_POST['objet'])    : '';
$antispam_h    = (isset($_POST['antispam_h']))   ? Rec($_POST['antispam_h']) : '';
$antispam_r    = (isset($_POST['antispam_r']))   ? Rec($_POST['antispam_r']) : '';

    	// On va vérifier les variables et l'email ...
    	$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré


		if (($nom != '') && ($email != '') && ($objet != ''))
		{
			// les 3 variables sont remplies, on génère puis envoie le mail

			 // Contenu du message //
        $message  = 'Bonjour,'."\r\n\r\n";
        $message .= 'cette demande de renseignements nous arrive depuis clowns-rectoverso.com par '. $civilite.' '.$nom."\r\n\r\n";
        $message .= 'Pour une demande de renseignements  pour :'."\r\n\r\n";
		$message .= $civilite." ";
		$message .= $nom."\r\n\r\n";
		$message .= $email."\r\n\r\n";
		$message .= $organisateur."\r\n\r\n";
		$message .= $tel." aux ";
		$message .= $horaires."\r\n\r\n";
		$message .= $cp."  ";
		$message .= $ville."\r\n\r\n";
		$message .= $option."\r\n\r\n";
		$message .= $precision."\r\n";

			$headers  = 'MIME-Version: 1.0' . "\r\n";
			$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
				'Reply-To:'.$email. "\r\n" .
				'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
				'Content-Disposition: inline'. "\r\n" .
				'Content-Transfer-Encoding: 7bit'." \r\n" .
				'X-Mailer:PHP/'.phpversion();

    		// envoyer une copie au visiteur ?
    		if ($copie == 'oui')
    		{
    			$cible = $destinataire.';'.$email;
    		}
    		else
    		{
    			$cible = $destinataire;
    		};

    		// Remplacement de certains caractères spéciaux
    		$message = str_replace("&#039;","'",$message);
    		$message = str_replace("&#8217;","'",$message);
    		$message = str_replace("&quot;",'"',$message);
    		$message = str_replace('<br>','',$message);
    		$message = str_replace('<br />','',$message);
    		$message = str_replace("&lt;","<",$message);
    		$message = str_replace("&gt;",">",$message);
    		$message = str_replace("&amp;","&",$message);

    		// Envoi du mail
    		$num_emails = 0;
    		$tmp = explode(';', $cible);
    		foreach($tmp as $email_destinataire)
    		{
    			if (mail($email_destinataire, $objet, $message, $headers))
    				$num_emails++;
    		}

    		if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
    		{
    			echo '<p>'.$message_envoye.'</p>';
    		}
    		else
    		{
    			echo '<p>'.$message_non_envoye.'</p>';
    		};
    	}
    	else
    	{
    		// une des 3 variables (ou plus) est vide ...
    		echo '<p>'.$message_formulaire_invalide.' <a href="Sanstitre-1.php">Retour au formulaire</a></p>'."\n";
    	};
			echo '<p>Merci pour votre participation ...</p>';
	}; // fin du if (!isset($_POST['envoi']))

	}	// MLX : fin if isset principal
?>
<div class="col col-md-one-half col-lg-three-third">
		<div class="container">
        <h5>BLOG</h5><br />
                <p>Toutes catégories</p>
		</div>
	</div>
</section>
<!-- Footer -->    	<p><a href="../../../Recto-Verso-2017/mentions-legales.html">Mentions légales</a> &bull; <a href="#">Plan du site</a> &bull; <a  href="../../../Recto-Verso-2017/contact.html">Contact</a><br /><a href="#">&copy; Les clowns f&eacute;minins Recto-Verso -2003/2018</a> &bull; <a href="#">Revenir en haut</a></p>
</div>
</body>
</html>

PS : je retirerai une fois résolu les emails en clair ;-)

Hors ligne

#5 2018-07-27 21:54:38

verso49
Membre
Lieu : Angers
Inscription : 2018-07-26
Messages : 7
Site Web

Re : formulaire de contact

Bonsoir Matthieu,

Rhoooo ça marche super bien !!! big_smile

Le message de remerciements s'ouvre sur une page de notre site ( j'ai changé le nom : Merci-2018.html)

Il ne me reste plus qu'à bien nommer mes pages et ne pas oublier de les changer dans le codage big_smile et enfin
inclure tout cela dans notre nouveau site.

Merci, merci, MERCI à toi et à ton script.

Verso49 smile smile smile

Hors ligne

#6 2018-08-20 21:35:32

verso49
Membre
Lieu : Angers
Inscription : 2018-07-26
Messages : 7
Site Web

Re : formulaire de contact

Bonjour Matthieu,

Me revoilà ! tongue

Je ne comprends pas je n'ai rien changé et mon formulaire n’envoie plus rien.
Rien ne part et reste sur la page du formulaire, il y a pour tant une page d'erreur.

voici la page Demande_de_renseignements.php :

 
<?php
	// on inclue le fichier des questions/réponses
	require_once('traitement_formulaire.php');

	// on tire au sort une question
	$nospam = NoSpamQuestion();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Demande de renseignements sur les clowns Recto-Verso</title>
<meta name="Description" content="Besoin d'un spectacle de clown ?
Sur scène, dans la rue, dans votre magasin ou bien dans votre salon
Pour un spectacle d'arbre de noël, un spectacle estival, une animation commerciale, ou même une fête familiale
Que vous soyez un comité d'entreprise, une association, un comité des fêtes, un camping, une association de parents d'élèves, une maison de retraite, une mairie, une association de commerçants, un magasin, un particulier, ou autre ... ?
Les clowns Recto-Verso ont la prestation qui vous convient !">
<meta name="Keywords" content="clown 44,clown 35,clown 49,clown 85,clown 56, duo de clowns,spectacle de clown,animation cirque,spectacle a domicile nantes,spectacle clown rennes,spectacle clown angers, spectacle clown vannes, spectacle clown lorient, spectacle clown la rochelle, spectacle clown saint malo, spectacle clown saint bieux,spectacle comité d'entreprise,spectacle enfant arbre de noel,clown anniversaire,clown animation pour enfant dans un mariage, mariage,animation de mariage, magie pour enfant, magicien pour enfant, maquillage pour enfant, animation sculpture sur ballons, ballooner, animation de rue, arbre de noel 44, spectacle de noel 44, arbre de noel 35, arbre de noel 56, arbre de noel 49, arbre de noel 85, comite d entreprise, CE, spectacle pour ecole, spectacle pour APE, spectacle petite enfance, animation deambulatoire, diner spectacle, nantes,loire atlantique, 44,pays de la loire,rennes,ill et vilaine,35,bretagne,vannes,vendee, 85,angers,49,maine et loire,chateaubriant,animation commerciale,animation foire, animation galerie commerciale, spectacle de clowns, scène, magasin, salon, un comité d'entreprise, une association, un comité des fêtes, un camping, une association de parents d'élèves, une maison de retraite, une mairie, une association de commerçants, un magasin, un particulier, association de quartier, arbre de noël, comité des fêtes, comité d'entreprise, campings, galette des rois, banquet des anciens, vœux du maire, animation commerciale, une fête familiale">
<meta name="Subject" content="Découvrez les clown Recto-Verso">
<meta name="Copyright" content="Les clowns Recto-Verso">
<meta name="Author" content="Anhuta Turpin, Coco Chataigner">
<meta name="Publisher" content="Anhuta Turpin, Coco Chataigner">
<meta name="Identifier-Url" content="https://www.clowns-rectoverso.com/Demande_de_renseignements-2018.php">
<meta name="Robots" content="all">
<meta name="Rating" content="general">
<meta name="Distribution" content="global">
<meta name="Geography" content="Angers, Pas de la Loire, Grand Ouest">
<meta name="google" content="nositelinkssearchbox" /> 
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" title="Design_Recto-Verso" type="text/css" href="RV-2017-2.css">
<script type="text/javascript" src="js/prefixfree.min.js"></script>
<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="index-2017.php"><img alt="Les clowns Recto-Verso" class="style-logo" src="images/site/logo.png" title="Les clowns Recto-Verso"></a>
				<div class="base-line">
					<h3>des clowns au féminin...</h3>
				</div>
			</header>
            <!--menu-->
			<nav class="style-nav">
				<ul>
					<li>
						<a href="spectacles.html">Spectacles</a>
					</li>
					<li>
						<a href="sculptures-sur-ballon.html">Sculptures</a>
					</li>
					<li>
						<a href="maquillages.html">Maquillages</a>
					</li>
					<li>
						<a href="fetes-familiales.html">Fêtes familiales</a>
					</li>
					<li>
						<a href="animations-sportives.html">Animations sportives</a>
					</li>
					<li>
						<a href="animations-commerciales.html">Animations commerciales</a>
					</li>
					<li>
						<a href="https://www.clowns-rectoverso.com/blog/dotclear/index.php?">Blog</a>
					</li>
					<li>
						<a href="https://www.clowns-rectoverso.com/Demande_de_renseignements-2018.php">Contact</a>
					</li>
				</ul>
			</nav><!-- fin menu -->
		</div>
	</div><!-- fin Entête et menu -->
	<h1>Pour avoir des renseignements merci de remplir TOUS les champs :</h1>
	<h2>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 02.41.93.07.22 ou au 06.07.58.10.90</h2><br>
	<section>
		<div class="row">
			<div class="col col-md-one-half col-lg-one-third">
				<form action="traitement_formulaire.php" id="contact" method="post" name="contact">
					<div class="container">
						<div class="row">
							<div class="col-26">
								<label for="nom">Nom et Prénom*</label>
							</div>
							<div class="col-74">
								<br>
								<input id="nom" name="nom" placeholder="Vos nom et prénom" required tabindex="1" type="text"><br>
							</div>
						</div>
						<div class="row">
							<div class="col-26">
								<label for="civilite">Civilité *</label>
							</div>
							<div class="col-74">
								<input id="madame" name="civilite" type="radio" value="madame"> <label for="madame">Madame</label> <input id="monsieur" name="civilite" type="radio" value="monsieur"> <label for="monsieur">Monsieur</label><br>
								<br>
							</div>
						</div>
						<div class="row">
							<div class="col-26">
								<label for="organisateur">Organisateur*</label>
							</div>
							<div class="col-74">
								<input id="organisateur" name="organisateur" placeholder="Asso, CE, Comité des fêtes, Centre de Loisirs, APE, Particulier..." required tabindex="2" type="text"><br>
								<br>
							</div>
						</div>
						<div class="row">
							<div class="col-26">
								<label for="cp">Code postal*</label>
							</div>
							<div class="col-74">
								<input id="cp" name="cp" placeholder="Votre code postal" required tabindex="3" type="text"><br>
								<br>
							</div>
							<div class="row">
								<div class="col-26">
									<label for="ville">Ville*</label>
								</div>
								<div class="col-74">
									<input id="ville" name="ville" placeholder="Votre ville" required tabindex="4" type="text"><br>
									<br>
								</div>
							</div>
							<div class="row">
								<div class="col-26">
									<label for="email">Email*</label>
								</div>
								<div class="col-74">
									<input id="email" name="email" placeholder="Votre email" required tabindex="5" type="email"><br>
									<br>
								</div>
							</div>
							<div class="row">
								<div class="col-26">
									<label for="tel">Téléphone*</label>
								</div>
								<div class="col-74">
									<input id="tel" name="tel" placeholder="Votre téléphone" required tabindex="6" type="tel"><br>
								</div>
							</div>
							<div class="row">
								<div class="col-26">
									<label for="horaires">Vos horaires*</label>
								</div>
								<div class="col-74">
									<input id="hr" name="horaires" type="radio" value="hr"> <label for="hr">Heures de repas</label> <input id="hb" name="horaires" type="radio" value="hb"> <label for="hb">Heures de bureau</label><br>
								</div>
							</div>
						</div>
					</div>
				</form>
			</div>
			<div class="col col-md-one-half col-lg-two-third">
				<div class="container">
					<div class="row">
						<div class="col-26">
							<label for="objet">Objet</label>
						</div>
						<div class="col-74">
							<input id="objet" name="objet" required tabindex="7" type="objet" value='Demande de renseignements'><br>
						</div>
					</div>
					<div class="row">
						<div class="col-26">
							<label for="projet">Votre Projet*</label>
						</div>
						<div class="col-74">
							<input id="spectacle" name="option" type="checkbox" value="spectacle"> <label for="spectacle">Un spectacle de clowns</label><br>
							<input id="fete-familliale" name="option" type="checkbox" value="fete familiale"> <label for="fete-familliale">Une fête familiale</label><br>
							<input id="animation-sportive" name="option" type="checkbox" value="animation-sportive"> <label for="animation-sportive">Une animation sportive</label><br>
							<input id="animation-commerciale" name="option" type="checkbox" value="animation-commerciale"> <label for="animation-commerciale">Une animation commerciale</label><br>
							<input id="autre" name="option" type="checkbox" value="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="Jours et heures pour vous appeler, date et heures du spectacle, etc ..." required style="height:120px" tabindex="8"></textarea><br>
						</div>
					</div>
					<div class="row">
						<div class="col-26">
							<label for="antispam">Antispam*</label>
						</div>
						<div class="col-74">
							<label for="code"><?php echo $nospam['question']; ?></label><input id="code" name="code" placeholder="répondez à la question ici" type="text"> <input name="nospam_question" type="hidden" value="<?php echo $nospam['num']; ?>">
						</div>
					</div>
					<div class="row">
						<div class="col-26">
							<input name="envoi" required type="submit" value="Envoyer">
						</div>
						<div class="col-74"></div>
					</div>
				</div>
			</div>
			<div class="col col-md-one-half col-lg-three-third">
				<div class="container">
					<div class="contact">
						<h5>CONTACTER les Clowns<br>
						RECTO-VERSO<br>
						<br>
						<br>
						<img alt="adresse de Recto-Verso" src="images/accueil/card.png"><br>
						Coco Chataigner<br>
						8 Rue du Pressoir<br>
						49124 Saint Barthélémy d'Anjou<br>
						<br>
						<br>
						<img alt="Téléphones de Recto-Verso" src="images/accueil/cellphone.png"><br>
						02.41.93.07.22<br>
						06.07.58.10.90<br></h5>
					</div>
				</div>
			</div>
		</div>
	</section><!-- Footer -->
	<footer>
    	<p><a href="https://www.clowns-rectoverso.com/mentions-legales.html">Mentions légales</a> &bull; <a href="https://www.clowns-rectoverso.com/Plan_du_site.html">Plan du site</a> &bull; <a  href="Demande_de_renseignements-2018.php">Contact</a><br><a href="#">&copy; Les clowns f&eacute;minins Recto-Verso -2003/2018</a> &bull; <a href="#">Revenir en haut</a></p>
</footer>
</body>
</html>

Voici la page traitement-formulaire.php :

<?php
/*
	********************************************************************************************
	CONFIGURATION
	********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'webmaster@clowns-rectoverso.com';

// copie ? (envoie une copie au visiteur)
$copie = 'non';

// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';

// Messages de confirmation du mail
$message_envoye = "";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
 * NoSpamQuestion affiche une question pour la validation d'un formulaire ...
 * $mode, mode question ou réponse par défaut tirage au sort de question {string}
 * $answer, lors de la demande d'une réponse à la question numero tant ... {int}
 *
 * @returns array
 *
 * Ajouter une question :
 * copier/coller ces lignes et remplir le contenu entre guillemets doubles :
 *
 * $array_pictures[$j]['num'] = $j; // ne pas changer cette ligne
 * $array_pictures[$j]['question'] = "mettre ici la question (correspondant à l'image si vous utilisez une image)";
 * $array_pictures[$j]['answer'] = "mettre ici la réponse à l'énigme";
 * $j++; // ne pas oublier cette ligne dans la copie :-)
 *
 * C'est tout. Question suivante ? :-)
 *
 */
function NoSpamQuestion($mode = 'ask', $answer = 0)
{
	$array_pictures = array(); $j = 0;

	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] = "Quelle est la cinquième lettre du mot Astux";
	$array_pictures[$j]['answer'] = "x";
	$j++;

	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] = "Le soleil est-il chaud ou froid ?";
	$array_pictures[$j]['answer'] = "chaud";
	$j++;

	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] = "Ecrire 12 en lettres";
	$array_pictures[$j]['answer'] = "douze";
	$j++;

	if ($mode != 'ans')
		{
			// on est en mode 'tirer au sort', on tire une image aléatoire
			$lambda = rand(0, count($array_pictures)-1);
			return $array_pictures[$lambda];
		}
		else
		{
			// on demande une vraie réponse
			foreach($array_pictures as $i => $array)
			{
				if ($i == $answer)
				{
					return $array;
					break;
				};
			};
		}; // Fin if ($mode != 'ans')
	};
    /*
    	********************************************************************************************
    	FIN DE LA CONFIGURATION
    	********************************************************************************************
    */
     
    // on teste si le formulaire a été soumis
    if (!isset($_POST['envoi']))
    {
    	// formulaire non envoyé
    	echo '<p>'.$message_formulaire_invalide.'</p>'."\n";
    }
    else
    {
   		// on ne traite le formulaire que si le bouton submit a été cliqué

		if (require_once('Merci-2018.html')); // pour définir les images, les questions et les réponses
 
		// n'oublions pas les 2 variables du captcha :
		$code = (isset($_POST['code'])) ? strtolower($_POST['code']) : ''; // contient la réponse du visiteur
		$nospam_question = (isset($_POST['nospam_question'])) ? $_POST['nospam_question'] : ''; // contient un nombre : le numéro de la vraie réponse
 
		// On demande la vraie réponse
		$verif_nospam = NoSpamQuestion('ans', $nospam_question);
 
		// on compare la 'vraie' réponse et celle du visiteur
		if ($code != strtolower($verif_nospam['answer']))
		{
			// le formulaire s'arrête ici
			echo '<p>Vous n\'avez pas répondu correctement à la question ....</p>';
		}
		else
		{   

/*
 * cette fonction sert à nettoyer et enregistrer un texte


 */
function Rec($text)
{
	$text = htmlspecialchars(trim($text), ENT_QUOTES);
	if (1 === get_magic_quotes_gpc())
	{
		$text = stripslashes($text);
	}

	$text = nl2br($text);
	return $text;
};

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email)
{
	$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
	return (($value === 0) || ($value === false)) ? false : true;
}

/* 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
};

// formulaire envoyé, on récupère tous les champs.
$nom       	   = (isset($_POST['nom']))          ? Rec($_POST['nom'])        : '';
$civilite      = (isset($_POST['civilite']))     ? Rec($_POST['civilite'])        : '';
$organisateur  = (isset($_POST['organisateur'])) ? Rec($_POST['organisateur'])        : '';
$cp            = (isset($_POST['cp']))           ? Rec($_POST['cp'])        : '';
$ville         = (isset($_POST['ville']))        ? Rec($_POST['ville'])        : '';
$email         = (isset($_POST['email']))        ? Rec($_POST['email'])      : '';
$tel           = (isset($_POST['tel']))          ? Rec($_POST['tel'])        : '';
$horaires      = (isset($_POST['horaires']))     ? Rec($_POST['horaires'])        : '';
$option        = (isset($_POST['option']))       ? Rec($_POST['option'])      : '';
$precision     = (isset($_POST['precision']))    ? Rec($_POST['precision'])    : '';
$objet         = (isset($_POST['objet']))        ? Rec($_POST['objet'])    : '';
$antispam_h    = (isset($_POST['antispam_h']))   ? Rec($_POST['antispam_h']) : '';
$antispam_r    = (isset($_POST['antispam_r']))   ? Rec($_POST['antispam_r']) : '';
     
    	// On va vérifier les variables et l'email ...
    	$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
     

		if (($nom != '') && ($email != '') && ($objet != ''))
		{
			// les 3 variables sont remplies, on génère puis envoie le mail
			
			 // Contenu du message //
        $message  = 'Bonjour,'."\r\n\r\n";
        $message .= 'cette demande de renseignements nous arrive depuis clowns-rectoverso.com par '. $civilite.' '.$nom."\r\n\r\n";
        $message .= 'Pour une demande de renseignements  pour :'."\r\n\r\n";
		$message .= $civilite." ";
		$message .= $nom."\r\n\r\n";
		$message .= $email."\r\n\r\n";
		$message .= $organisateur."\r\n\r\n";
		$message .= $tel." aux ";
		$message .= $horaires."\r\n\r\n";
		$message .= $cp."  ";
		$message .= $ville."\r\n\r\n";
		$message .= $option."\r\n\r\n";
		$message .= $precision."\r\n";	
			
			$headers  = 'MIME-Version: 1.0' . "\r\n";
			$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
				'Reply-To:'.$email. "\r\n" .
				'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
				'Content-Disposition: inline'. "\r\n" .
				'Content-Transfer-Encoding: 7bit'." \r\n" .
				'X-Mailer:PHP/'.phpversion();
    	
    		// envoyer une copie au visiteur ?
    		if ($copie == 'oui')
    		{
    			$cible = $destinataire.';'.$email;
    		}
    		else
    		{
    			$cible = $destinataire;
    		};
     
    		// Remplacement de certains caractères spéciaux
    		$message = str_replace("&#039;","'",$message);
    		$message = str_replace("&#8217;","'",$message);
    		$message = str_replace("&quot;",'"',$message);
    		$message = str_replace('<br>','',$message);
    		$message = str_replace('<br />','',$message);
    		$message = str_replace("&lt;","<",$message);
    		$message = str_replace("&gt;",">",$message);
    		$message = str_replace("&amp;","&",$message);
     
    		// Envoi du mail
    		$num_emails = 0;
    		$tmp = explode(';', $cible);
    		foreach($tmp as $email_destinataire)
    		{
    			if (mail($email_destinataire, $objet, $message, $headers))
    				$num_emails++;
    		}
     
    		if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
    		{
    			echo '<p>'.$message_envoye.'</p>';
    		}
    		else
    		{
    			echo '<p>'.$message_non_envoye.'</p>';
    		};
    	}
    	else
    	{
    		// une des 3 variables (ou plus) est vide ...
    		echo '<p>'.$message_formulaire_invalide.'</p>'."\n";
    	};
			echo '<p>Merci pour votre participation ...</p>';
		};
}; // fin du if (!isset($_POST['envoi']))
    ?>
    ?>
 

J'ai un page Merci-2018.html et une page Erreur-formulaire.html

Merci par avance pour ton aide, Verso49 :d

Dernière modification par verso49 (2018-08-30 11:42:12)

Hors ligne

#7 2018-08-30 11:48:22

verso49
Membre
Lieu : Angers
Inscription : 2018-07-26
Messages : 7
Site Web

Re : formulaire de contact

Toujours moi tongue

Tu dois être en vacances !

Je n'ai rien changé du côté de  mon formulaire, mais j'ai mis en ligne notre nouveau site.
Cela pourrait-il avoir une incidence ?

en fait en haut de ma page

j'ai cette ligne qui apparait :

Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.

et rien ne part et je n'ai aucun message d'erreur sous wamp.

Merci, Verso49 :d

Hors ligne

#8 2018-09-16 09:42:23

verso49
Membre
Lieu : Angers
Inscription : 2018-07-26
Messages : 7
Site Web

Re : formulaire de contact

Bonjour,

Hé bien si j'avais bien modifier le code html et css de mon formulaire pour ajuster le design !
Et j'ai déplacer la balise form .

Une fois remise à sa place tout fonctionne à nouveau.

Merci, Verso49 :d

Hors ligne