php mail non rempli

Eléphanteau du PHP | 18 Messages

08 oct. 2012, 09:16

Bonjour,
J'ai un souci depuis quelque temps avec une partie de ce script php.
En effet, il doit envoyer 2 mails, 1 à celui qui s’inscrit (l'émetteur), l'autre au webmestre (le destinataire) du site contenant ; le nom, le prénom, la fonction et l'e-mail. Or dans cet e-mail le champ email n'est pas rempli, exemple :
Nom : 01
Prénom : 02
E-mail :
Fonction : 03

Après vérification, je ne comprends pas ce qui bloc, de plus je ne suis pas sûr que cela vienne du script, peut-être que cela vient de l'hébergeur, 1and1.fr.

Voici le script pour ceux qui veulent bien gentiment me venir en aide.
	</head>
	<body>
<form id="formulaire" name="contact" action="#" method="post">
		<p><label for="nom">Nom</label>
			<input type="text" name="nom" id="nom" value='<?php if(!empty($_POST["nom"])) echo $_POST["nom"]; ?>' /></p>
                
		<p>	<label for="prenom">Prénom </label>
			<input type="text" name="prenom" id="prenom" value='<?php if(!empty($_POST["prenom"])) echo $_POST["prenom"]; ?>' /></p>
                
		<p><label for="email">Mail</label>
			<input type="text" name="email" id="email" value='<?php if(!empty($_POST["email"])) echo $_POST["email"]; ?>' /></p>
                
		<p><label for="fonction">Fonction</label>
			<input type="text" name="fonction" id="fonction" value='<?php if(!empty($_POST["fonction"])) echo $_POST["fonction"]; ?>' /></p>
                
		<p><input type="reset"  value="Effacer" />  
			<input type="submit" name="submit" value="Envoyer" /></p>
		<p><input type="hidden" name="soumission" />
	</p>
</form>
<?php
/* Sécurité */
function check_input($data, $problem='')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }
    return $data;
}

function show_error($myError)
{
	    global $error;
    	$error = true;
?>
  <div id="error">
<p><b>Attention</b><br>
  <?php echo $myError; ?></p>
</div>
<?php
}
function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '')
{
  $header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
  if(mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header))
  	return true;
}
if(isset($_POST) && isset($_POST['soumission']))
{
	global $error;
	$error = false;
	
	/* Email du reply-to */
	$expediteur = "[email protected]";

	
	/* Email du destinataire */
	$emailD = "[email protected]";
	$subjectD = "Inscription Pro depuis annadrey.com";
	$subjectE = "Confirmation d'inscription Pro sur annadrey.com";
	
	/* Vérifie chaque champs */
	$nom 	= check_input($_POST['nom'], "Veuillez renseigner votre nom");
	$prenom = check_input($_POST['prenom'], "Veuillez renseigner votre prénom");
	$emailE  = check_input($_POST['email']);
	/* Validation de l'email */
	if (!preg_match("/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/", $emailE))
	{
	    show_error("Attention, votre email n'est pas valide");
	}
	$fonction = check_input($_POST['fonction'],"Veuillez renseigner votre fonction");
	
	/* Message pour le mail du destinataire */
	$messageD = "
	Nom : $nom \r\n
	Prénom : $prenom \r\n
	E-mail : $email \r\n
	Fonction : $fonction \r\n
	";
	
	/* Message pour le mail de l'émetteur */
	$messageE = "
	Merci, $prenom $nom, de votre demande d'accès à la partie professionnelle de mon site. \r
	Voici le lien vers celle-ci. Vous pourrez y trouver toutes les informations dont vous avez besoin. \r
	http://www.annadrey.com/pro-pass.html\r
	Et le code d'accès à entrer :  \r
	harmony \r
	Je serais heureuse de vous voir bientôt au cours à l'un de mes spectacles.
	";
	/* Envoi de l'email pour le destinaire */
	if($error != 1)
	{
				if((mail_utf8($emailD, $subjectD, $messageD, "From: $expediteur\r\nReply-To: $expediteur")) && (mail_utf8($emailE, $subjectE, $messageE, "From: $expediteur\r\nReply-To: $expediteur")))
		{
				?>
				<div id="complete">
			    <p><b>Merci d'avoir complété le formulaire</b><br>
			      Vous allez recevoir un mail de confirmation contenant le lien vers la page de téléchargement professionnel.</p>
</div>
		    	<?php
		}
		else
		{
			echo "<p>Une erreur est survenue lors de l'envoi du mail,  \r
			veuillez réessayer ultérieurement</p>";
		}
	}
}
?>
	</body>
</html>
"L'important pour la rivière n'est pas de se jeter dans la mer mais de rencontrer les galets"

ViPHP
ViPHP | 2577 Messages

08 oct. 2012, 09:30

A priori, un problème sur le nom de la variable :
$emailE = check_input($_POST['email']);
...
E-mail : $email \r\n

Eléphanteau du PHP | 18 Messages

08 oct. 2012, 09:48

Merci Mazarini
"L'important pour la rivière n'est pas de se jeter dans la mer mais de rencontrer les galets"

ViPHP
ViPHP | 2577 Messages

08 oct. 2012, 09:55

Pense à utiliser error_reporting(E_ALL), tu sauras immédiatement qu'une variable n'est pas définie

Eléphanteau du PHP | 12 Messages

08 oct. 2012, 15:46

Bonjour,
est ce que ton problème est résolu ?

Eléphanteau du PHP | 18 Messages

09 oct. 2012, 08:01

Oui, merci beaucoup.
Ou faut-il que je mette la fonction que tu m'as donnée, error_reporting(E_ALL).

Merci
"L'important pour la rivière n'est pas de se jeter dans la mer mais de rencontrer les galets"

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 oct. 2012, 08:20

En haut du script.
Et seulement pour le développement ;)

@+
Il en faut peu pour être heureux ......