Bonjour,
J'ai créé une page "contact" pour le site web de la compagnie. Nous sommes sur un serveur Dedibox qui a été configuré par un informaticien et dont je n'ai pas accès.
Quand je teste mon formulaire, la page web me confirme l'envoi du mail, or, je ne reçoit rien (après essais sur différentes boites mail). J'ai essayé différents scripts et tous donnent le même résultat.
Voilà celui que j'ai réussi le mieux à adapter à mon site :
Il est en deux parties (avant le html) :
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#ffffff";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#058189";
// 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_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Votre demande : » est vide ou incomplet.</span>";
$errf_4=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:[email protected]\n";
$corps.="Votre Nom : ".$f_1."\n";
$corps.="Votre e-mail : ".$f_2."\n";
$corps.="Objet : ".$f_3."\n";
$corps.="Votre demande : ".$f_4."\n";
if(mail("[email protected]", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
puis :
<? 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> </td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td> </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='#058189'><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és d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Votre Nom* :</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='42' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Votre e-mail :</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='42' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Objet :</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='42' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Votre demande* :</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>
<? } ?>
L'informaticien me dit recevoir les mails et avoir installé un "serveur mail postfix" et je ne comprends rien à ce qu'il me raconte. Il y a t-il un moyen de faire fonctionner ce formulaire sans repasser par l'informaticien ? J'ai lu des choses sur phpmailer, mais je n'ai pas compris comment le mettre en place...
Merci beaucoup !
Bonjour,
J'ai créé une page "contact" pour le site web de la compagnie. Nous sommes sur un serveur Dedibox qui a été configuré par un informaticien et dont je n'ai pas accès.
Quand je teste mon formulaire, la page web me confirme l'envoi du mail, or, je ne reçoit rien (après essais sur différentes boites mail). J'ai essayé différents scripts et tous donnent le même résultat.
Voilà celui que j'ai réussi le mieux à adapter à mon site :
Il est en deux parties (avant le html) :
[php]
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#ffffff";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#058189";
// 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_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Votre demande : » est vide ou incomplet.</span>";
$errf_4=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:
[email protected]\n";
$corps.="Votre Nom : ".$f_1."\n";
$corps.="Votre e-mail : ".$f_2."\n";
$corps.="Objet : ".$f_3."\n";
$corps.="Votre demande : ".$f_4."\n";
if(mail("
[email protected]", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
[/php]
puis :
[php]
<? 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> </td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td> </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='#058189'><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és d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Votre Nom* :</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='42' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Votre e-mail :</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='42' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Objet :</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='42' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Votre demande* :</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>
<? } ?>
[/php]
L'informaticien me dit recevoir les mails et avoir installé un "serveur mail postfix" et je ne comprends rien à ce qu'il me raconte. Il y a t-il un moyen de faire fonctionner ce formulaire sans repasser par l'informaticien ? J'ai lu des choses sur phpmailer, mais je n'ai pas compris comment le mettre en place...
Merci beaucoup !