Salut tout le monde, j'ai un problème avec un script qui prends les champs d'un formulaire et envoie l'info à un adresse courriel gMail. Tous mes variables fonctionnent mais le mail ne s'envoie pas et va tout de suite dans le else ... voici le code `:
HTML :
[code]<form id="fiche" method="post" action="mon_url.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
</fieldset>
<fieldset><legend>Informations du band</legend>
<p><label for="nomband">Nom :</label><input type="text" id="nomband" name="nomband" tabindex="3" /></p>
<p><label for="style">Style :</label><input type="text" id="style" name="style" tabindex="3" /></p>
<p><label for="formation">Année de formation :</label><input type="text" id="formation" name="formation" tabindex="3" /></p>
<p><label for="ville">Ville :</label><input type="text" id="ville" name="ville" tabindex="3" /></p>
<p><label for="membres">Membres (et fonction) :</label><textarea id="membres" name="membres" tabindex="4" cols="30" rows="6">Exemple: George LePoil - Vocals</textarea></p>
<p><label for="facebook">*Url Facebook :</label><input type="text" id="facebook" name="facebook" tabindex="3" /></p>
<p><label for="reverbnation">*Url ReverbNation :</label><input type="text" id="reverbnation" name="reverbnation" tabindex="3" /></p>
<p><label for="myspace">*Url Myspace :</label><input type="text" id="myspace" name="myspace" tabindex="3" /></p>
<p><label for="imglogo">Url Image Logo :</label><input type="text" id="imglogo" name="imglogo" tabindex="3" /></p>
<p><label for="imgband">Url Image Band :</label><input type="text" id="imgband" name="imgband" tabindex="3" /></p>
<div style="text-align:right;"><input type="submit" name="envoi" value="Envoyer les informations !" /></div>
</fieldset>
</form>[/code]
PHP :
[code]<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = '
[email protected]';
// 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='mon_url'>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); // delete white spaces after & before text
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']) : '';
$nomband = (isset($_POST['nomband'])) ? Rec($_POST['nomband']) : '';
$style = (isset($_POST['style'])) ? Rec($_POST['style']) : '';
$formation = (isset($_POST['formation'])) ? Rec($_POST['formation']) : '';
$ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
$membres = (isset($_POST['membres'])) ? Rec($_POST['membres']) : '';
$facebook = (isset($_POST['facebook'])) ? Rec($_POST['facebook']) : '';
$reverbnation = (isset($_POST['reverbnation'])) ? Rec($_POST['reverbnation']) : '';
$myspace = (isset($_POST['myspace'])) ? Rec($_POST['myspace']) : '';
$imglogo = (isset($_POST['imglogo'])) ? Rec($_POST['imglogo']) : '';
$imgband = (isset($_POST['imgband'])) ? Rec($_POST['imgband']) : '';
// 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 != '') && ($nomband != '') && ($style != '') && ($formation != '') && ($ville != '') && ($membres != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = "From: ".$nom."<".$email.">"."\n";
//On mets tous les variables dans un '$message' et on créé la variable de l'objet
$message = "Nom : ".$nomband."\n Style : ".$style."\n Formation : ".$formation."\n Ville : ".$ville."\n Membres : ".$membres."\n Facebook : ".$facebook."\n Reverb Nation : ".$reverbnation."\n MySpace : ".$myspace."\n Url image logo : ".$imglogo."\n Url image band : ".$imgband;
$objet = "Fiche de groupe : ".$nomband;
// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="mon_url">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>[/code]
Donc à chaque fois, ça m'affiche : L'envoi du mail a échoué, veuillez réessayer SVP. Avez-vous des idées ?