Rechercher : dans
Par :

Problème de formulaire de contact.php

Dernière réponse le 16 nov 2009 à 12:37:48 stephaneeti, le 16 nov 2009 à 12:08:58 
 Signaler ce message aux modérateurs

Bonjour,


Voila, après des semaines de recherches, je ne trouve pas de solution, c'est pourquoi je viens vers vous.
Après avoir créé mon formulaire de contact et la fonction d'envoi en php, je n'arrive pas à recevoir de mail. Pourtant, lorsque je fais le test directement en ligne, mon code me dit que le message à bien été envoyé...

Je vous colle mon code :

//Première partie du code en haut de la page en Php

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=strip_tags(trim($f_2));
$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ « Votre Nom : » est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ « Votre adresse Mail : » est vide ou incomplet.</span>";
$errf_2=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_2)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_2=1;
}
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Message : » est vide ou incomplet.</span>";
$errf_4=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$corps.="Votre Nom : : ".$f_1."\n";
$corps.="Votre adresse Mail : : ".$f_2."\n";
$corps.="Objet du message : : ".$f_3."\n";
$corps.="Message : : ".$f_4."\n";
if(mail("monmail@mail.com", $titre, stripslashes($corps), $tete)){ //ici mon mail... ?
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>

//Le formulaire avec des classe Css qui sont Okay.

<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>

<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un <span class='etoile'>*</span> sont obligatoires</span><BR /><BR /></td></tr>

<tr><td align='right' width='30%'><span class='txtform'>Votre Nom :<span class='etoile'>*</span> </span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'>  </td></tr>

<tr><td align='right' width='30%'><span class='txtform'>Votre adresse Mail :<span class='etoile'>*</span></span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'>  </td></tr>

<tr><td align='right' width='30%'><span class='txtform'>Objet du message :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'>  </td></tr>

<tr><td align='right' width='30%'><span class='txtform'>Message :<span class='etoile'>*</span></span></td><td><textarea style='width:360 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' rows='6' cols='40'><?echo$f_4?></textarea>  </td></tr>

<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>

</table>
</form>
<? } ?>

//Le retour, si le mail à bien été envoyé...

<?php
if( $mailSent === true ) // si le message a bien été envoyé, on affiche le récapitulatif
{
?>
<p id="success">Votre message a bien été envoyé.</p>
<p><strong>Courriel pour la réponse :</strong><br /><?php echo( $from ); ?></p>
<p><strong>Objet :</strong><br /><?php echo( $object ); ?></p>
<p><strong>Message :</strong><br /><?php echo( nl2br( htmlspecialchars( $message ) ) ); ?></p>
<?php
}
else // le formulaire est affiché pour la première fois ou le formulaire a été soumis mais contenait des erreurs
{
if( count( $errors ) !== 0 )
{
echo( "\t\t<ul>\n" );
foreach( $errors as $error )
{
echo( "\t\t\t<li>$error</li>\n" );
}
echo( "\t\t</ul>\n" );
}

}
?>

Voilà le code, je ne comprend pas pourquoi il ne fonctionne pas sous Safari et Firefox....

Merci d'avance pour votre aide ! :D

Configuration: Mac OS X
Safari 531.9

Meilleures réponses pour « Problème de formulaire de contact.php » dans :
Les formulaires HTML VoirIntérêt d'un formulaire Les formulaires interactifs permettent aux auteurs de pages Web de doter leur page web d'éléments interactifs permettant par exemple un dialogue avec les internaute, à la manière des coupons-réponse présents dans certains...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

Tsunami Chups, le 16 nov 2009 à 12:25:30

Tu essaye de ton localhost ou d'un serveur online ? On ne devrais jamais dire impossible avant d'avoir essayé.
L'étroitesse d'esprit est le pire des défaut 
Tan qu'a mourir autant que ce soit en faisant ce qui me plai­t 

Répondre à Tsunami Chups

2

Pilow, le 16 nov 2009 à 12:28:23

Si ton site est chez un hébergeur, renseigne toi pour voir s'ils acceptent l'envoi de mail ou non.

Certains hébergeur le bloque. Pensez à prévenir les personnes qui vous aident si votre pro­blème est réglé

Répondre à Pilow

3

 Tsunami Chups, le 16 nov 2009 à 12:37:48

Oui et d'autre comme free en utilise une autre fonction
si tu es en ligne essaye de faire un phpinfo() On ne devrais jamais dire impossible avant d'avoir essayé.
L'étroitesse d'esprit est le pire des défaut 
Tan qu'a mourir autant que ce soit en faisant ce qui me plai­t 

Répondre à Tsunami Chups