Exercice PHP corrigé réalisation d’un formulaire de contact

$destinataire = 'Email de destinataire exemple 
 aaa@gmail.com';
	$copie = 'oui';
	// 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 = "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.";

	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;');
		}
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
//Vérification 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'])   : '';
	$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 != '') && ($Objet != '') && ($Message != ''))
		{
			// les 4 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;
			};
			// Remplacement de certains caractères spéciaux
			$Message = html_entity_decode($Message);
			$Message = str_replace('',"'",$Message);
			$Message = str_replace('',"'",$Message);
			$Message = str_replace('
','',$Message);
			$Message = str_replace('
','',$Message);
			// Envoi du mail
			if (mail($cible, $Objet, $Message, $headers))
			{
				echo '

'.$Message_envoye.'
'."\n";
			}
			else
			{
				echo '

'.$Message_non_envoye.'
'."\n";
			};
		}
		else
		{
			// une des 3 variables (ou plus) est vide ...
			echo '

'.$Message_formulaire_invalide.' Retour au formulaire
'."\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>......</legend>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="nom">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 '		<p>'."\n";
		echo '			<label for="Objet">Objet :</label>'."\n";
		echo '			<input type="text" id="Objet" name="Objet" value="'.stripslashes($Objet).'" tabindex="3" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="Message">Message :</label>'."\n";
		echo '		<textarea id="Message" name="Message" tabindex="4" 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" /></div>'."\n";
		echo '</form>'."\n";

	};
?>

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *