Aller au contenu

Formulaires de contact sous Firefox: quelques bugs


silv1

Sujets conseillés

Bonjour!!! C'est encore moi, et c'est encore un problème de formulaire... Alors voilà en fait lorsqu'un internaute remplit correctement tous les champs du formulaire tout marche nickel...

Mais lorsqu'il omet d'indiquer une info les choses se compliquent: une page apparait avec un message indiquant que tel champ obligatoire n'a pas été saisi. Lorsque l'internaute revient en arrière avec le navigateur, il retrouve le formulaire avec les données qu'il venait de saisir. Mais une fois les infos modifiées, lorsqu'il clique sur le bouton "envoyer", plus rien ne se passe... La page reste fixe et le fichier php qui est censé gérer les données du formulaire ne se lance même pas.

J'ai observé ce problème sous Firefox, par contre sur internet explorer ça fonctionne correctement :IMSTP1:

Bizarre, bizarre je n'arrive pas du tout à voir d'où vient ce bug...

Quelqu'un a t-il déjà été confronté à un problème similaire?

Merci pour vos éclaircissements :)

Lien vers le commentaire
Partager sur d’autres sites

Hello,

la seule fois que j'ai vu ce genre de bug c'était parce que le formulaire était (mal) géré en JS.

Mais sans le code en question comme le suggère marcb on ne pourra guère t'aider plus.

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Bonjour! Merci kioob et marcb pour vos réponses... Alors en fait je viens de changer complètement mon formulaire de contact. J'ai trouvé un script php qui fonctionne à merveille et je n'ai donc plus de problème de formulaire bloqué :)

Par contre j'aimerai bien retrouver une fonctionnalité que j'avais sur mon ancien formulaire, à savoir le stockage des infos recueillies sur un fichier txt.

Sur mon autre formulaire j'utilisais ces lignes de code

$datedujour = date('d/m/y/H:i:s');
$filename="./admin/monfichier.txt";
$fl=fopen($filename,"a+");
fwrite($fl,"''$f_2'|'$f_3'|'$f_4'|'$f_5'|'$f_6'|'$f_2'|\n\r");
fclose($fl);

Mais vu que le nouveau formulaire est entièrement en php, je me demande ou placer ce code... J'ai essayé pleins de fois mais à chaque fois ça bug.

Je vous indique donc le code du nouveau formulaire:

avant la balise <html>

CODE
<?php

$color_font_warn="#FF0000";

$color_form_warn="#FFCC66";

$list['f_1']=array("M","Mlle","Mme");

$list['f_7']=array("choix1","choix2","choix3");

if(isset($_POST['submit'])){

$erreur="";

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);

}

}

}

$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));

$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));

$f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4)));

$f_5=strip_tags(trim($f_5));

$f_6=trim(eregi_replace("[^0-9\ +]", "", $f_6));

if(!$f_1){

$erreur.="<li><span class='txterror'>Le champ « Civilité » requiert au moins une sélection.</span>";

$errf_1=1;

}

if(strlen($f_2)<2){

$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";

$errf_2=1;

}

if(strlen($f_3)<2){

$erreur.="<li><span class='txterror'>Le champ « Prénom » est vide ou incomplet.</span>";

$errf_3=1;

}

if(strlen($f_4)<2){

$erreur.="<li><span class='txterror'>Le champ « Département » est vide ou incomplet.</span>";

$errf_4=1;

}

if(strlen($f_5)<2){

$erreur.="<li><span class='txterror'>Le champ « Adresse e-mail » est vide ou incomplet.</span>";

$errf_5=1;

}else{

if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.

'@'.

'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.

'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',

$f_5)){

$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";

$errf_5=1;

}

}

if(strlen($f_6)<2){

$erreur.="<li><span class='txterror'>Le champ « Téléphonne » est vide ou incomplet.</span>";

$errf_6=1;

}

if($erreur==""){

// Création du message

$titre="Message de votre site";

$tete="From:Site\n";

for($id=0; $id<count($list['f_1']); $id++){

if($f_1[$id]==1){

$corps.="Civilité : ".$list['f_1'][$id]."\n";

}

}

$corps.="Nom : ".$f_2."\n";

$corps.="Prénom : ".$f_3."\n";

$corps.="Département : ".$f_4."\n";

$corps.="Adresse e-mail : ".$f_5."\n";

$corps.="Téléphonne : ".$f_6."\n";

for($id=0; $id<count($list['f_7']); $id++){

if($f_7[$id]==1){

$corps.="Vous souhaitez: : ".$list['f_7'][$id]."\n";

}

}

$corps.="Remarques ou questions éventuelles : ".$f_8."\n";

if(mail("monmail", $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>";

}

}

}

?>

Entre les balises <body> et </body>

CODE
<? 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='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 * sont obligatoires</span></td></tr>

<tr><td align='right' width='30%'><span class='txtform'>Civilité* :</span></td><td>

<table border='0' cellspacing='0' cellpadding='0'>

<? for($id=0;$id<count($list['f_1']);$id++){

if($f_1[$id]==1){$ct="checked";}

print("<tr><td><input ".$ct." type='checkbox' name='f_1[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_1][$id]."</span></td></tr>");

unset($ct);

}?>

</table>

</td></tr>

<tr><td align='right' width='30%'><span class='txtform'>Nom* :</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'>Prénom* :</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'>Département* :</span></td><td><input type='text' style='width:200 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='24' border='0'></td></tr>

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

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

<tr><td align='right' width='30%'><span class='txtform'>Vous souhaitez: :</span></td><td>

<table border='0' cellspacing='0' cellpadding='0'>

<? for($id=0;$id<count($list['f_7']);$id++){

if($f_7[$id]==1){$ct="checked";}

print("<tr><td><input ".$ct." type='checkbox' name='f_7[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_7][$id]."</span></td></tr>");

unset($ct);

}?>

</table>

</td></tr>

<tr><td align='right' width='30%'><span class='txtform'>Remarques ou questions éventuelles :</span></td><td><textarea style='width:360 <?if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' rows='6' cols='40'><?echo$f_8?></textarea></td></tr>

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

</table>

</form>

<? } ?>

Voilà donc le nouveau formulaire! Ma question est donc la suivante: selon vous ou dois-je placer les lignes de code permettant d'écrire les infos sur le fichier txt ?

Merci d'avance

Silv1

Modifié par silv1
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...