Création d'un formulaire de contact

Fermé
ayaba13 Messages postés 2 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 3 octobre 2012 - 5 déc. 2009 à 10:06
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 6 déc. 2009 à 18:58
Bonjour,
N'arrivant pas à trouver l'information parmi tous les posts, pouvez-vous m'aider ? Merci par avance. Je souhaite insérer un formulaire de contact sur la page CONTACT de mon site et qui envoie les informations laissées par les internautes vers ma boîte mail. J'ai bien créé mon formulaire mais quand je le teste et que je clique sur ENVOYER ça m'ouvre une fenêtre vers ma boîte de messagerie et ce n'est pas ce que je veux. Merci pour votre aide.
A voir également:

5 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
6 déc. 2009 à 18:58
Et un lien vers la doc officielle (ça ne fait pas de tord ;) ) : https://www.php.net/manual/en/function.mail.php
1
Dackxes Messages postés 274 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 17 avril 2010 35
5 déc. 2009 à 10:18
0
OpenSourceWay Messages postés 45 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 19 novembre 2012
5 déc. 2009 à 10:30
Bonjour,

Je vous propose mon aide.
Je vous envoie le code source de la page : http://oswkamata.leobaillard.org/Contact/

C'est un formulaire de contact banal que j'ai copié de je ne sais où mais il fonctionne.
Il vous suffit de copier le <form> </form> de la page index.php et de la mettre sur la page de votre formulaire de contact (.php ou .html, tout fonctionne)
Pour la page traitement.php, il faut tout copier et tout mettre dans un fichier traitement.php dans le même dossier que la page contact.
Il faut aussi vérifier que le serveur prend en compte la fonction mail php.

Allez, j'envoi tout :

Le formulaire :

<form name="formulaire" action="traitement.php" method="post">
<table>
<tr><td class="droite">Votre nom : </td><td><input name='nom' type='text' size='50'></td></tr>
<tr><td class="droite">Votre pr&eacute;nom : </td><td><input name='prenom' type='text' size='50'></td></tr>
<tr><td class="droite">Votre email : </td><td><input name='email' type='text' size='50'></td></tr>
<tr><td class="droite">Votre message : <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></td><td><textarea name='texte' cols='65' rows='20'></textarea></td></tr>
<tr><td></td><td>
<input name='soumettre' type='submit' value='Envoyer'> <input name='annuler' type='reset' value='Annuler'></td></tr>
</table>
</form>



Puis la page traitement.php :

<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/

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

	// Messages de confirmation du mail
	$message_envoye = "Le message à bien été envoyé";
	$message_non_envoye = "L'envoi du mail a échoué, veuillez rééssayer SVP.";

	// Messages d'erreur du formulaire
	$message_erreur_formulaire = "Vous devez d'abord <a href=\"index.php\">envoyer le formulaire</a>. $dest";
	$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['soumettre']))
	{
		// 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'])     : '';
		$prenom  = (isset($_POST['prenom']))  ? Rec($_POST['prenom'])  : '';
		$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
		$objet   = "Lien site";
		$message = (isset($_POST['texte']))   ? Rec($_POST['texte'])   : '';

	
		// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	
		$destinataire = "opensourceway@oswkamata.leobaillard.org";
		
		// 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.' '.$prenom.' <'.$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("&#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("<","<",$message);
			$message = str_replace(">",">",$message);
			$message = str_replace("&amp;","&",$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="index.php">Retour au formulaire</a></p>'."\n";
		};
	}; // fin du if (!isset($_POST['envoi']))
?>




Infos sup :
!! Il faut changer l'adresse mail du destinataire dans traitement.php
Vous pouvez personnaliser les messages du haute de page en mettant une redirection vers la page voulu : header (location: http://hyerbhfbzervg);


C'est à peu-près tout, le reste est dans les commentaires.

OpenSourceWay
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
5 déc. 2009 à 16:11
Il ne faut pas utiliser les tableaux pour la mises en formes des formulaires !
http://www.siteduzero.com/tutoriel-3-33971-aligner-ses-formulaires-sans-tableaux.html
0
OpenSourceWay Messages postés 45 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 19 novembre 2012
6 déc. 2009 à 18:47
Euh, oui.

Merci pour cette astuce qui va me permettre de corriger des bugs pour des navigateurs différents de mozilla.

A Bientôt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
6 déc. 2009 à 18:57
Pour un formulaire de contact, il faut utiliser la fonction mail de PHP.
https://www.commentcamarche.net/contents/800-php-mail-et-fonctions-reseau
0