Bonjour,
Ca fait 5 heures que je cherche pourquoi mon formulaire ne fonctionne pas et je n'ai pas trouvé. (rigolez pas...)

Je construis un site onepage en HTML5
Le formulaire est en HTML et pointe vers un fichier PHP.
J'ai testé en local et j'ai aussi chargé le site sur mon serveur. Rien n'y a fait.

HTML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<form id="contact" name="form_contact" method="post" action="traitement.php"> 
 
    <p><label for="nom">Nom</label></p> 
    <p><input type="text" id="nom" name="nom" placeholder="Prénom et nom" required tabindex="1" /> </p>
 
    <p><label for="email">Courriel</label></p> 
    <p><input type="text" id="email" name="email" placeholder="exemple@domain.com" required tabindex="2" /> </p>
 
	<p><label for="objet">Objet</label></p> 
    	<p><input type="text" id="objet" name="objet " placeholder="L'objet de votre mail" required tabindex="3" /> </p>
 
    	<p><label for="message">Votre message</label></p> 
    	<p><textarea name="message" id="message" tabindex="4"></textarea> </p>
 
    	<p><input type="submit" id="envoi" name="envoi" tabindex="5" value="Envoyer le courriel" /> </p>
 
    </form>


PHP (traitement.php)
Oui, j'ai récupéré du code que j'ai adapté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/
	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = 'monmail@mondomaine.com';
 
	// copie ? (envoie une copie au visiteur)
	$copie = 'non'; // 'oui' ou 'non'
 
	// Messages de confirmation du mail
	$message_envoye = "Votre message nous est bien parvenu . Nous y répondrons dans les plus brefs délais. Pour retourner au site cliquez <a href=http://localhost/201006_thenard_onepage/#contact>ici</a>";
	$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer s'il vous plait ou utiliser une méthode traditionnelle.";
 
	// Messages d'erreur du formulaire
	$message_erreur_formulaire = "Vous devez d'abord <a href=http://localhost/201006_thenard_onepage/#contact>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); // supprime les espaces avant et après le texte
			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']) : '';
 
		// 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("’","'",$message);
			$message = str_replace("&quot;",'"',$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
			$message = str_replace("&lt;","<",$message);
			$message = str_replace("&gt;",">",$message);
			$message = str_replace("&amp;","&",$message);
 
			// Envoi du mail
			// Function mail()
			mail($cible, $nom, $objet, $message, $headers);
			if (mail($cible, $nom, $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="http://localhost/201006_thenard_onepage/#contact">Retour au formulaire</a></p>'."\n";
		};
	}; // fin du if (!isset($_POST['envoi']))
?>
Peut-être aurez-vous l'œil moins fatigué que moi, pour trouver la @"?#!! de virgule qui manque. Moi j'en peux plus.

Merci pour votre aide.