Formulaire avec de multiples champs à envoyer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire avec de multiples champs à envoyer

Re: Formulaire avec de multiples champs à envoyer

par Sarti » 20 oct. 2010, 13:14

Voilà j'ai enlevé la partie qui était mauvaise...

Pour concaténer, concrètement, je rajoute quoi à quelle(s) ligne(s) ?

Merci beaucoup !!

Re: Formulaire avec de multiples champs à envoyer

par xTG » 20 oct. 2010, 12:26

Premièrement il y a un sérieux soucis dans ton code (regardes la couleur syntaxique de la fin).
Cela provient de :
$message = str_replace(''',"'",$message);  
   $message = str_replace(''',"'",$message); 
Enfin pour envoyer les données avec il te suffit de concaténer tes rajouts à la variable $message.
C'est une opération très basique.
Exemple :
$message1 = "texte";
$message2=" rédigé en noir";
$message_concat = $message1 . $message2;

Formulaire avec de multiples champs à envoyer

par Sarti » 20 oct. 2010, 09:58

Salut à tous,

voilà sur le net j'ai dégoté un script PHP pour l'envoi de formulaire via la fonction ()mail de mon hébergeur...

Seulement j'aimerais lui rajouter des champs, qui devront êtres remplis et quand le formulaire sera envoyé j'aurais ces champs + le message qui suit, reçu sur ma boite mail.... vous me suivez ?
Le soucis est quand je fais un test, je reçois que l'objet + le message... et pas ces fameux champs.

Voici le code PHP :
<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/
	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = '[email protected]';

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

	// 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 = "<strong>Votre message a bien été envoyé, nous vous y répondrons dans les plus brefs délais, merci !</strong>";
	$message_non_envoye = "<strong>L'envoi du mail a échoué, veuillez réessayer SVP.</strong>";

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

	/*
		********************************************************************************************
		FIN DE LA CONFIGURATION
		********************************************************************************************
	*/

	/*
	 * cette fonction sert à nettoyer et enregistrer un texte
	 */
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}

		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};

	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($email)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$email)) ? true : false;
	};

	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
	$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
	$telephone     = (isset($_POST['telephone']))     ? Rec($_POST['telephone'])     : '';
	$adresse     = (isset($_POST['adresse']))     ? Rec($_POST['adresse'])     : '';
	$ville     = (isset($_POST['ville']))     ? Rec($_POST['ville'])     : '';
	$pays     = (isset($_POST['pays']))     ? Rec($_POST['pays'])     : '';
	$adulte     = (isset($_POST['adulte']))     ? Rec($_POST['adulte'])     : '';
	$enfant     = (isset($_POST['enfant']))     ? Rec($_POST['enfant'])     : '';
	$animaux     = (isset($_POST['animaux']))     ? Rec($_POST['animaux'])     : '';
	$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

	if (isset($_POST['envoi']))
	{
		// 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é
		$err_formulaire = (IsEmail($email)) ? false : true;

		if (($nom != '') && ($email != '') && ($telephone != '') && ($adresse != '') && ($ville != '') && ($pays != '') && ($adulte != '') && ($enfant != '') && ($animaux != '') && ($objet != '') && ($message != ''))
		{
			// les 11 variables sont remplies, on génère puis envoie le mail
			$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

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

			// Envoi du mail
			if (mail($cible, $objet, $message, $headers))
			{
				echo '<p>'.$message_envoye.'</p>'."\n";
			}
			else
			{
				echo '<p>'.$message_non_envoye.'</p>'."\n";
			};
		}
		else
		{
			// une des 3 variables (ou plus) est vide ...
			echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
			$err_formulaire = true;
		};
	}; // fin du if (!isset($_POST['envoi']))

	if (($err_formulaire) || (!isset($_POST['envoi'])))
	{
		// afficher le formulaire
		echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
		echo '	<fieldset><legend>Vos coordonnées</legend>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="nom">Nom et prénom:</label>'."\n";
		echo '			<input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="email">Email :</label>'."\n";
		echo '			<input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
		echo '		</p>'."\n";
		echo '	</fieldset>'."\n";
		echo '	<fieldset><legend>Informations</legend>'."\n";
                echo '		<p>'."\n";
		echo '			<label for="telephone">Téléphone :</label>'."\n";
		echo '			<input type="text" id="telephone" name="telephone" value="'.stripslashes($telephone).'" tabindex="3" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="adresse">Adresse :</label>'."\n";
		echo '			<input type="text" id="adresse" name="adresse" value="'.stripslashes($adresse).'" tabindex="4" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="telephone">Code Postal Ville :</label>'."\n";
		echo '			<input type="text" id="ville" name="ville" value="'.stripslashes($ville).'" tabindex="5" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="pays">Pays :</label>'."\n";
		echo '			<input type="text" id="pays" name="pays" value="'.stripslashes($pays).'" tabindex="6" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="nom">Nombre dadultes:</label>'."\n";
		echo '			<input type="text" id="adulte" name="adulte" value="'.stripslashes($adulte).'" tabindex="7" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="email">Nombre denfants :</label>'."\n";
		echo '			<input type="text" id="enfant" name="enfant" value="'.stripslashes($enfant).'" tabindex="8" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="animaux">Animaux (oui/non) :</label>'."\n";
		echo '			<input type="text" id="animaux" name="animaux" value="'.stripslashes($animaux).'" tabindex="9" />'."\n";
		echo '		</p>'."\n";
		echo '	</fieldset>'."\n";
		echo '	<fieldset><legend>Votre message :</legend>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="objet">Objet :</label>'."\n";
		echo '			<input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="10" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="message">Message :</label>'."\n";
		echo '			<textarea id="message" name="message" tabindex="11" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
		echo '		</p>'."\n";
		echo '	</fieldset>'."\n";

		echo '	<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
		echo '</form>'."\n";
	};
?>

Merci à vous.