Bonjour tout le monde,
Je viens de découvrir votre forum. Après y avoir cherché plusieurs solutions, je me décide à vous poster mon problème
Je suis en train de créer un formulaire et mon but est ensuite d'envoyer les informations du formulaire par e-mail.
Le seul hic : quand j'appuie sur Envoyer, que ce soit en local ou à partir d'un serveur distant, cela ne fonctionne pas, mon e-mail ne part pas.
J'ai testé un formulaire d'exemple que j'ai trouvé sur votre forum : http://a-pellegrini.developpez.com/tutoriels/php/mail/#L4.1 et là quand je clique sur le bouton Envoyer, en local comme directement sur la page, cela fonctionne.
Donc cela ne vient pas de mon hébergeur.
Qu'est-ce qui pourrait faire que mon bouton Envoyer ne fonctionne pas ?
Voici le code html (je ne mets que la partie concernant le formulaire) :
Ainsi que le fichier cible en php :
Merci pour votre aide !
Je viens de découvrir votre forum. Après y avoir cherché plusieurs solutions, je me décide à vous poster mon problème

Je suis en train de créer un formulaire et mon but est ensuite d'envoyer les informations du formulaire par e-mail.
Le seul hic : quand j'appuie sur Envoyer, que ce soit en local ou à partir d'un serveur distant, cela ne fonctionne pas, mon e-mail ne part pas.

J'ai testé un formulaire d'exemple que j'ai trouvé sur votre forum : http://a-pellegrini.developpez.com/tutoriels/php/mail/#L4.1 et là quand je clique sur le bouton Envoyer, en local comme directement sur la page, cela fonctionne.
Donc cela ne vient pas de mon hébergeur.
Qu'est-ce qui pourrait faire que mon bouton Envoyer ne fonctionne pas ?
Voici le code html (je ne mets que la partie concernant le formulaire) :
<form method="post" action="php/cible2.php">
<p><label for="nomprenom">Nom et prénom</label> : <input type="text" name="nomprenom" id="nomprenom" tabindex="100" /><label for="societe">Société</label> : <input type="text" name="societe" id="societe" tabindex="100" /></p>
<p><label for="email">E-mail</label> : <input type="text" name="email" id="email" tabindex="100" /><label for="tel">Téléphone</label> : <input type="text" name="tel" id="tel" tabindex="100" /></p>
<p><label for="prestation">Sélectionnez votre/vos prestation(s)*</label> :<br />
<select name="prestation1" id="prestation1">
<option value="L">L</option>
<option value="SI">SI</option>
<option value="PC">PC</option>
<option value="P1">P1</option>
<option value="P2">P2</option>
</select><br />
<select name="prestation2" id="prestation2">
<option value="L">L</option>
<option value="SI">SI</option>
<option value="PC">PC</option>
<option value="P1">P1</option>
<option value="P2">P2</option>
</select><br />
<select name="prestation3" id="prestation3">
<option value="L">L</option>
<option value="SI">SI</option>
<option value="PC">PC</option>
<option value="P1">P1</option>
<option value="P2">P2</option>
</select></p>
<p><label for="message">Message</label> :<br />
<textarea name="message" id="message" rows="3" cols="30" tabindex="100"></textarea></p>
<p><input type="submit" name="envoye" value="Envoyer" /></p>
</form>
Ainsi que le fichier cible en php :
<?php
/* Si le formulaire est envoyé alors on fait les traitements */
if (isset($_POST['envoye']))
{
/* Récupération des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
$nomprenom = stripslashes(trim($_POST['nomprenom']));
$societe = stripslashes(trim($_POST['societe']));
$email = stripslashes(trim($_POST['email']));
$tel = stripslashes(trim($_POST['tel']));
$prestation1 = stripslashes(trim($_POST['prestation1']));
$prestation2 = stripslashes(trim($_POST['prestation2']));
$prestation3 = stripslashes(trim($_POST['prestation3']));
$message = stripslashes(trim($_POST['message']));
}
else
{
$nomprenom = trim($_POST['nomprenom']);
$societe = trim($_POST['societe']);
$email = trim($_POST['email']);
$tel = trim($_POST['tel']);
$prestation1 = trim($_POST['prestation1']);
$prestation2 = trim($_POST['prestation2']);
$prestation3 = trim($_POST['prestation3']);
$message = trim($_POST['message']);
}
/* Expression régulière permettant de vérifier si le
* format d'une adresse e-mail est correct */
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
/* Expression régulière permettant de vérifier qu'aucun
* en-tête n'est inséré dans nos champs */
$regex_head = '/[\n\r]/';
/* Si le formulaire n'est pas posté de notre site on renvoie
* vers la page d'accueil */
if($_SERVER['HTTP_REFERER'] != 'http://www.monsite.com/formulaire.html')
{
header('Location: http://www.monsite.com');
}
/* On vérifie que tous les champs sont remplis */
elseif (empty($nomprenom)
|| empty($societe)
|| empty($email)
|| empty($tel))
{
$alert = 'Merci de bien vouloir renseigner les champs suivants : votre nom et prénom, le nom de votre société, votre e-mail et votre numéro de téléphone.';
}
/* On vérifie que le format de l'e-mail est correct */
elseif (!preg_match($regex_mail, $expediteur))
{
$alert = 'L\'adresse '.$expediteur.' n\'est pas valide';
}
/* On vérifie qu'il n'y a aucun header dans les champs */
elseif (preg_match($regex_head, $email)
|| preg_match($regex_head, $nomprenom)
|| preg_match($regex_head, $tel))
{
$alert = 'En-têtes interdites dans les champs du formulaire';
}
/* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
elseif (!isset($_COOKIE['sent']))
{
/* Destinataire (votre adresse e-mail) */
$to = 'adresse@email.com';
define('MAIL_SUJET','Demande');
//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nomprenom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer [langue]HP/' . phpversion()."\r\n";
// préparation du corps du mail
$mail_corps = "Message de : $nomprenom\n";
$mail_corps = "Appartenant à la société : $societe\n";
$mail_corps .= "Le contacter : $tel $email\n";
$mail_corps .= "Ses besoins : $prestation1 $prestation2 $prestation3\n";
$mail_corps .= "Informations complémentaires : $message\n\n\n";
/* Envoi de l'e-mail */
if (mail($to, $sujet, $msg, $headers))
{
$alert = 'E-mail envoyé avec succès';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="fr" />
</head>
<body>
<div id="texte-formulaire">
<h1>Demande</h1>
<p>Votre demande nous a bien été envoyée.</p>
</div>
</body>
</html>
Merci pour votre aide !
