formulaire (debutant)

azard
Invité n'ayant pas de compte PHPfrance

26 oct. 2010, 14:48

Bonjour,

Comme beaucoup de debutant j'ai telecharger un script tout fait de formulaire et je croyais pouvoir le modifier pour qu'il accepte, en plus, 3 lmenus deroulants...
Mais rien a faire... je n'y arrive pas car je ne comprend meme pas où est créé le mail dans le code. Pourriez vous m'aider :
<?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 = 'non'; // 'oui' ou 'non'

	// 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.";

	// Messages d'erreur du formulaire
	$message_erreur_formulaire = "Vous devez d'abord <a href=\"formulaire.html\">envoyer le formulaire</a>.";
	$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

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

		// formulaire envoyé, on récupère tous les champs.
		$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']) : '';
		$nouveau_menu_deroulant_1 = (isset($_POST['md1])) ? Rec($_POST['md1']) : '';    <--------------------------------ca se passe ici	
		$nouveau_menu_deroulant_2 = (isset($_POST['md2])) ? Rec($_POST['md2']) : '';    <--------------------------------ca se passe ici	
		$nouveau_menu_deroulant_3 = (isset($_POST['md3])) ? Rec($_POST['md3']) : '';    <--------------------------------ca se passe ici

		// 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 != '') && ($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 = str_replace("'","'",$message);
			$message = str_replace("&#8217;","'",$message);
			$message = str_replace(""",'"',$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
			$message = str_replace("<","<",$message);
			$message = str_replace(">",">",$message);
			$message = str_replace("&","&",$message);

			// 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="formulaire.html">Retour au formulaire</a></p>'."\n";
		};
	}; // fin du if (!isset($_POST['envoi']))
?>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 oct. 2010, 14:54

J'ai rajouté les balises PHP pour la coloration, pense à les utilises la prochaine fois.

Le mail est envoyé avec la fonction mail(), tu as même un commentaire au dessus, "Envoi du mail". Avec les paramètres tu peux voir les différentes parties et comprendre ce qui est fait au dessus.