Réalisation d’un formulaire de contact

Exercice 1

Réaliser un formulaire pour que l’utilisateur puisse vous envoyer un Message. Ainsi, une fois le formulaire rempli, le mail part directement dans votre Boite de Réception…

Le Formulaire et le Suivant :

Réalisation d’un formulaire de contact

$destinataire = 'Email de destinataire exemple 
 [email protected]';
	$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";

	};
?>

Réalisation d’un formulaire de contact