8796 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je suis en train de réaliser un formulaire de contact.
La page contenant le formulaire est en HTML et elle interagit avec la page cible.php, laquelle doit s'occuper d'envoyer les données via un e-mail.
Mon objectif est que toutes les informations saisies par l'internaute me soient envoyées par e-mail.

Le problème : le formulaire a l'air de fonctionner correctement, mais je ne reçois pas d'e-mail.
Je ne sais pas si cela peut venir d'un problème de configuration du serveur ou bien d'une erreur dans mon code...

Voici mon code ci-dessous.
La page HTML contenant le formulaire :

<!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>PAGE DE CONTACT AVEC 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" />       
	<link href="css/css.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
	<div id="conteneur">
	<div id="contenu" style="background:url(images/fond.png) no-repeat;">
	    <div id="header">
		<a id="logo" href="..." title="...">
		    <img src="images/logo.png" alt="..." title="..." />
		</a>
		<div id="menu">
		    <ul id="menulist">
			<li><a href="..." title="...">...</a></li>
			<li><a href="..." title="...">...</a></li>
			<li><a href="..." title="...">...</a></li>
			<li><a href="..." title="..." style="color:#66C6E4;"><u>Contact</u></a></li>
			<li><a href="..." title="...">...</a></li>
		    </ul>
		</div>
		<img src="images/barre-menu.png" id="filetmenu" />
	    </div>
	    <div id="border">
	    </div>
	    <div id="milieucontact">
		<div id="partiegauche">
		    <h4>...</h4>
		    <form method="post" action="php/cible.php">
			<p class="contacts">
			    <label for="titre">Titre :</label><br />
			    <select name="titre" id="titre" tabindex="10">
				<option value="Mademoiselle">Mademoiselle</option>
				<option value="Madame">Madame</option>
				<option value="Monsieur">Monsieur</option>
			    </select>
			</p>
			<p class="contacts"><label for="nomprenom">Nom et prénom *</label> : <input type="text" name="nomprenom" id="nomprenom" tabindex="20" /></p>
			<p class="contacts"><label for="email">E-mail</label> : <input type="text" name="email" id="email" tabindex="30" /></p>
			<p class="contacts"><label for="tel">Téléphone *</label> : <input type="text" name="tel" id="tel" tabindex="40" /></p>
			<p class="contacts"><label for="message">Décrivez ci-dessous votre demande *</label> :<br />
			<textarea name="message" id="message" rows="3" cols="50" tabindex="50"></textarea></p>
			<p class="contacts"><input type="submit" /> <input type="reset" /></p>
		    </form>
		</div>
		    <h1>...</h1>
		    <h2>...</h2>
		    <p>...</p>
		    <p id="petitcontact">...</p>
	    </div>
	    <div id="footer">
		<div id="partie1">
		    <p>....</p>
		</div>
		<div id="partie2">
		    <h1>...</h1>
		    <p>...</p>
		</div>
		<div id="partie3">
		    <h1>...</h1>
		    <p>...</p>
		</div>    
	    </div>
	</div>
	</div>
    </body>
</html>


La page cible.php :

<?php
	define('MAIL_DESTINATAIRE','adresse@adresse.fr'); // remplacer par votre email
	define('MAIL_SUJET','Demande information et/ou devis');



	$interets = $_POST['interets'];
	$sqlinterets = '';
	for ($i=0; $i<count($interets); $i++) {
		$sqlinterets .= $interets[$i];
		$sqlinterets .= ', ';
	}
	
	$titre     = (isset($_POST['titre']))     ? $_POST['titre']     : '';
	$nomprenom     = (isset($_POST['nomprenom']))     ? $_POST['nomprenom']     : '';
	$email   = (isset($_POST['email']))   ? $_POST['email']   : '';
	$tel     = (isset($_POST['tel']))     ? $_POST['tel']     : '';
	$message = (isset($_POST['message'])) ? $_POST['message'] : '';

	//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 : $titre $nomprenom\n";
	$mail_corps .= "Le contacter : $tel $email\n";
	$mail_corps .= "Sa demande : $message\n\n\n";

	
	// envoi du mail
/*	if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
	  //Le mail est bien expédié
	  //echo $msg_ok;
	} else {
	  //Le mail n'a pas été expédié
	  echo 'Une erreur est survenue lors de l\'envoi du formulaire par e-mail';
	}*/

?>
<!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>PAGE CIBLE.PHP</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" />       
	<link href="../css/css.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
	<div id="conteneur">
	<div id="contenu" style="background:url(../images/fond.png) no-repeat;">
	    <div id="header">
		<a id="logo" href="..." title="...">
		    <img src="../images/logo.png" alt="..." title="..." />
		</a>
		<div id="menu">
		    <ul id="menulist">
			<li><a href="..." title="...">...</a></li>
			<li><a href="..." title="...">...</a></li>
			<li><a href="..." title="...">...</a></li>
			<li><a href="..." title="..." style="color:#66C6E4;"><u>...</u></a></li>
			<li><a href="..." title="...l">...</a></li>
		    </ul>
		</div>
		<img src="../images/barre-menu.png" id="filetmenu" />
	    </div>
	    <div id="border">
	    </div>
	    <div id="milieucontact">
		<div id="partiegauche">
		    <h4>Votre message a bien été envoyé. Nous vous répondrons dans les meilleurs délais.</h4>
		</div>
		    <h1>...</h1>
		    <h2>...</h2>
		    <p>...</p>
	    </div>
	    <div id="footer">
		<div id="partie1">
		    <p>...</p>
		</div>
		<div id="partie2">
		    <h1>...</h1>
		    <p>...</p>
		</div>
		<div id="partie3">
		    <h1>...</h1>
		    <p>...</p>
		</div>    
	    </div>
	</div>
	</div>
    </body>
</html>


N'hésitez pas à me dire s'il vous manque des infos.
En vous remerciant d'avance pour vos éclaircissements,
Modifié par mama5 (26 Feb 2011 - 23:21)
Question bête, tu as regardé dans ton dossier spam ?

PS: tu ne devrais pas laisser ton adresse email dans le code que tu publies sur le forum.
T'as pensé à décomenter ta fonction mail() ? Smiley langue

Sinon oui tu devrais regarder dans le spam, perso j'utilise Gmail pour tester mes envois de mails car en général ils les laissent toujours passer, même si ils tombent parfois dans le spam.
Modifié par Skoua (22 Feb 2011 - 00:54)
Bonjour et merci pour avoir jeté un coup d'oeil à mon problème ! Smiley smile

@jb_gfx : bien vu, j'ai pensé à effacer pas mal d'infos mais malheureusement pas mon adresse... c'est désormais chose faite !
Sinon j'ai vérifié mes spams et j'ai rien trouvé (j'ai essayé avec deux adresses e-mail différentes).

@Skoua : je vais tester ! Smiley smile

Question bête : est-ce qu'il y aurait des paramètres à activer sur le serveur (chez OVH) pour que le php fonctionne ?
Bonsoir,

est-tu certain que le corps de ton message ne dépasse pas 70 caractères ?
sinon je te conseillerai de le découper via wordwrap
De même, essaie de terminer tes lignes avec PHP_EOL au lieu de \r\n ou \n

@++
Salut,

Il te faut aussi un serveur SMTP fonctionnel.

Regarde sinon dans les log PHP, tu y trouvera pourquoi cela ne fonctionne pas
Bonjour à tous et merci pour vos réponses ! Smiley biggrin

Effectivement, tête en l'air comme je suis, je n'avais pas tilté pour la fonction mail en commentaire ! Smiley sweatdrop
Maintenant cela fonctionne parfaitement !

Il me reste à définir des alertes quand les champs obligatoires ne sont pas complétés et ce sera tout beau tout chouette !

En vous remerciant encore chacun d'avoir regardé mon topic et d'y avoir contribué ! Smiley cligne