Bonsoir à tous

Je développe actuellement un site à orientation professionnelle (CV, etc.), dont j'ai récupéré le modèle sur HTML5 UP.

A la fin de ma page perso se trouve un formulaire de contact, contenant les champs "Nom", "Email", "Sujet" et le corps du message.

En recherchant sur le net, j'ai trouvé le script PHP nommé contact.php suivant :

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
119
120
121
122
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'damien.ardito@me.com';
 
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // '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=\"contact.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 = htmlspecialchars(trim($text), ENT_QUOTES);
		if (1 === get_magic_quotes_gpc())
		{
			$text = stripslashes($text);
		}
		$text = nl2br($text);
		return $text;
	};
	//Cette fonction sert à vérifier la syntaxe d'un email
	function IsEmail($email)
	{
		$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
		return (($value === 0) || ($value === false)) ? false : true;
	}
	// formulaire envoyé, on récupère tous les champs.
	$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
	$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
	$sujet = (isset($_POST['sujet'])) ? Rec($_POST['sujet']) : '';
	$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 != '') && ($sujet != '') && ($message != ''))
	{
		// les 4 variables sont remplies, on génère puis envoie le mail
		$headers = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
		'Reply-To:'.$email. "\r\n" .
		'X-Mailer:PHP/'.phpversion();
 
		// 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);
 
		function date_getMicroTime() 
		{
			list($usec, $sec) = explode(' ', microtime());
			return ((float) $usec + (float) $sec);
		} 
 
		$total = 0;
		while($total < 1)
		{
			$start = date_getMicroTime();
			for($i = 0 ; $i < 999999 ; $i++) 1;
			{
				mail($cible, $sujet, $message, $headers);
				$total = round(date_getMicroTime() - $start, 3);
			}
		}
 
		// Envoi du mail
		if (mail($cible, $sujet, $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="contact.html">Retour au formulaire</a></p>'."\n";
	};
};
?>
Cependant, je ne parviens pas à l'utiliser avec le formulaire présent sur mon site :

Code html : 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
<form method="post" action="contact.php">
    <div>
        <div class="row half">
            <div class="6u">
                <input type="text" name="name" id="name" placeholder="Nom" />
            </div>
            <div class="6u">
                <input type="text" name="email" id="email" placeholder="Email" />
            </div>
        </div>
        <div class="row half">
            <div class="12u">
                <input type="text" name="subject" id="subject" placeholder="Sujet" />
            </div>
        </div>
        <div class="row half">
            <div class="12u">
                <textarea name="message" id="message" placeholder="Message"></textarea>
            </div>
        </div>
        <div class="row">
            <div class="12u">
                <a href="#" class="button form-button-submit">Envoyer</a>
                <a href="#" class="button button-alt form-button-reset">Tout effacer</a>
            </div>
        </div>
    </div>
</form>

En principe, sur appui du bouton Envoyer de mon form (ligne 23), les informations sont passée à mon script, ce dernier envoyant le mail sur ma boîte. Mais forcément, ça ne fonctionne pas !

Comment faire dans mon cas ? J'avais pensé à du JavaScript mais je sais pas comment procéder à vrai dire.

Je précise que je ne peux pas utiliser d'input car cela me forcerait de revoir le design CSS. Or, ce n'est pas moi qui l'a fait et je suis de toute façon trop limité en CSS....

Merci à vous !
Cordialement,
Che57