Formulaire mal rempli = message d'erreur
14 messages
• Page 1 sur 1
- aventvoy
- WRInaute discret

- Messages: 169
- Inscription: 17 Nov 2004
Formulaire mal rempli = message d'erreur
Hello,
J'ai différents formulaires simples (contact, newsletter, inscription...) sur différents sites.
Si le formulaire est correctement rempli, sans oublier aucun champ obligatoire, tout va bien, je reçois le formulaire par courriel, no problem.
Par contre, si un champ n'est pas (ou mal) rempli, la page s'ouvre sur un message d'erreur et l'affichage du formulaire partiellement rempli avec mention genre "vous n'avez pas rempli ça..." . Et le bouton "Envoyer" classique.
Le problème c'est que lorsqu'on corrige l'erreur, on peut cliquer 20 fois sur "Envoyer", rien ne se passe, le formulaire est bloqué... Le bouton "Recommencer" ne marche pas non plus...
Une idée du pourquoi de la chose?
Voici un bref apperçu du code (simplifié à une entrée et sans html pour faire simple...)
Voilà... Pourquoi ça ne marche pas lorsque le formulaire se voit à nouveau partiellement rempli (après erreur donc)?
Merci d'avance!
A.
J'ai différents formulaires simples (contact, newsletter, inscription...) sur différents sites.
Si le formulaire est correctement rempli, sans oublier aucun champ obligatoire, tout va bien, je reçois le formulaire par courriel, no problem.
Par contre, si un champ n'est pas (ou mal) rempli, la page s'ouvre sur un message d'erreur et l'affichage du formulaire partiellement rempli avec mention genre "vous n'avez pas rempli ça..." . Et le bouton "Envoyer" classique.
Le problème c'est que lorsqu'on corrige l'erreur, on peut cliquer 20 fois sur "Envoyer", rien ne se passe, le formulaire est bloqué... Le bouton "Recommencer" ne marche pas non plus...
Une idée du pourquoi de la chose?
Voici un bref apperçu du code (simplifié à une entrée et sans html pour faire simple...)
- Code: Tout sélectionner
<?php
if(isset($_POST['envoi']))
{
$email_dest = "machin@machin.com";
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Site internet <webmaster@machin.com>\n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";
$subject = "Formulaire de contact depuis le site machin.com";
// Récupération des données du formulaire
$prenom = $_POST['prenom'];
//Définition des variables servant au traitement des info
// Conditions de mauvaises réponses (champ vide par exemple)
if ($prenom == '' )
{
// Action à adopter
?>
Un (ou plusieurs) champ(s) n'a(ont) pas été correctement rempli(s).
<?php
if ($prenom == '')
{
print "<li>Vous n'avez pas précisé votre prénom </li>\n";
}
/* Si les vérifications ont généré des erreurs, affichage du formulaire
contenant les données déjà saisies par l'utilisateur.
Si aucune erreur n'est relevée, alors le script continue et le message part */
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" name="prenom" maxlength="40" class="cases" value="<?php echo $prenom ?>" />
<input type="submit" class="verif" name="envoi" value="Envoyer" />
<input name="recommencer" type="reset" class="verif" id="recommencer" value="Recommencer" />
<?php
}
else
{
/* Si aucun des champs obligatoire n'est vide et si les données sont valides : Traitement des données et affichage des infos reçues*/
print "<p>Merci ! Voici la demande d'information reçue : </p>\n";
//etc...
/*envoi de ces mêmes informations par courrier électronique : */
$message = "<p> le message ici...\r\n";
/* On envoie le message */
if(mail($email_dest, $subject, $message, $headers))
{
echo("<p>blablabla, etc....</p>");
}
else
{
echo("<p>Un incident technique s'est produit, Nous n'avons pas reçu votre message. Contactez nous directement à <a href=mailto:contact@machin.com</a></p>\n");
}
}
}
/* Si cette page s'ouvre pour la première fois sans que le bouton soumettant le formulaire n'ait été cliqué, alors on affiche le formulaire normalement */
else
{
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
Votre prénom
<input type="text" name="prenom" maxlength="40" class="cases" value="" /></td>
<input type="submit" class="verif" name="envoi" value="Envoyer" /> <input name="recommencer" type="reset" class="verif" id="recommencer" value="Recommencer" />
</form>
<?php
}
?>
Voilà... Pourquoi ça ne marche pas lorsque le formulaire se voit à nouveau partiellement rempli (après erreur donc)?
Merci d'avance!
A.
-

manthoR - WRInaute discret

- Messages: 231
- Inscription: 13 Mar 2006
outre que c'est pas la plus simple manière de coder ton script, il me semble qu'il te manque tout bêtement un </form>
- Code: Tout sélectionner
/* Si les vérifications ont généré des erreurs, affichage du formulaire
contenant les données déjà saisies par l'utilisateur.
Si aucune erreur n'est relevée, alors le script continue et le message part */
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" name="prenom" maxlength="40" class="cases" value="<?php echo $prenom ?>" />
<input type="submit" class="verif" name="envoi" value="Envoyer" />
<input name="recommencer" type="reset" class="verif" id="recommencer" value="Recommencer" />
</FORM>
<?php
}
else
{
- aventvoy
- WRInaute discret

- Messages: 169
- Inscription: 17 Nov 2004
Résolu
Pfff... C'était aussi simple que ça... MERCI!
Bon, pour le
Petit à petit j'ai bon espoir d'y arriver !
Merci encore.
A.
Bon, pour le
, merci également. Je me doutais bien qu'il y avait certainement plus simple... C'est en forgeant qu'on devient forgeron, c'est en codant qu'on code rondoutre que c'est pas la plus simple manière de coder ton script
Petit à petit j'ai bon espoir d'y arriver !
Merci encore.
A.
- dax84
- Nouveau WRInaute

- Messages: 4
- Inscription: 1 Mar 2012
Re: Formulaire mal rempli = message d'erreur
Je profite de ce post, j'ai le même type de problème sur un formulaire. S'il y a une erreur, mon bouton submit reste bloqué.
Quelqu'un aurait une idée svp?
Merci !
<code><form method="post" action="contact.php" name="contactform" id="contactform" autocomplete="on">
<p><label for=name accesskey=U><span class="required fsample_01">*</span> Votre nom</label>
<input name="name" type="text" id="name" size="50" value="" /></p>
<p><label for=email accesskey=E><span class="required fsample_01">*</span> Email</label>
<input name="email" type="text" id="email" size="50" value="" /></p>
<p><label for=phone accesskey=P><span class="required fsample_01">*</span> Téléphone</label>
<input name="phone" type="text" id="phone" size="50" value="" /></p>
<p><label for=subject accesskey=S>Sujet</label>
<select name="subject" id="subject">
<option value="Support">Informations</option>
<option value="a Sale">Devis</option>
<option value="a Bug fix">Reporter un bug</option>
</select></p>
<p><label for=comments accesskey=C><span class="required">*</span> Votre message</label>
<textarea name="comments" rows="8" cols="40" id="comments" style="width: 450px;"></textarea></p>
<p><span class="required">*</span> Code de vérification</p>
<div>
<label style="display:block; float:left; margin-right:15px;" for=verify accesskey=V> <img src="image.php" border="0" alt="code" /></label>
<input name="verify" type="text" id="verify" size="6" value="" style="width: 50px; float:left;" />
<div class="clear"></div>
</div><br />
<input type="submit" class="submit" id="submit" value="Submit" />
</form></code>
Quelqu'un aurait une idée svp?
Merci !
<code><form method="post" action="contact.php" name="contactform" id="contactform" autocomplete="on">
<p><label for=name accesskey=U><span class="required fsample_01">*</span> Votre nom</label>
<input name="name" type="text" id="name" size="50" value="" /></p>
<p><label for=email accesskey=E><span class="required fsample_01">*</span> Email</label>
<input name="email" type="text" id="email" size="50" value="" /></p>
<p><label for=phone accesskey=P><span class="required fsample_01">*</span> Téléphone</label>
<input name="phone" type="text" id="phone" size="50" value="" /></p>
<p><label for=subject accesskey=S>Sujet</label>
<select name="subject" id="subject">
<option value="Support">Informations</option>
<option value="a Sale">Devis</option>
<option value="a Bug fix">Reporter un bug</option>
</select></p>
<p><label for=comments accesskey=C><span class="required">*</span> Votre message</label>
<textarea name="comments" rows="8" cols="40" id="comments" style="width: 450px;"></textarea></p>
<p><span class="required">*</span> Code de vérification</p>
<div>
<label style="display:block; float:left; margin-right:15px;" for=verify accesskey=V> <img src="image.php" border="0" alt="code" /></label>
<input name="verify" type="text" id="verify" size="6" value="" style="width: 50px; float:left;" />
<div class="clear"></div>
</div><br />
<input type="submit" class="submit" id="submit" value="Submit" />
</form></code>
- franckM
- WRInaute impliqué

- Messages: 832
- Inscription: 15 Nov 2007
Re: Formulaire mal rempli = message d'erreur
zeb a écrit:dax84 a écrit:Quelqu'un aurait une idée svp ?
Tant que tu encadre ton formulaire avec des balises <code> ça ne risque pas de fonctionner.
Non mais je crois qu'il pensait à mettre en style pour le forum: [code][/code]
- dax84
- Nouveau WRInaute

- Messages: 4
- Inscription: 1 Mar 2012
Re: Formulaire mal rempli = message d'erreur
oui bien sur je voulais indiquer le code…
donc on enlève les balises <code> </code>.
S'il y a une erreur dans le formulaire, par exemple le code de vérification est mal entré, le bouton submit reste appuyé, donc impossible de re soumettre le formulaire.
Merci.
S'il y a une erreur dans le formulaire, par exemple le code de vérification est mal entré, le bouton submit reste appuyé, donc impossible de re soumettre le formulaire.
Merci.
- franckM
- WRInaute impliqué

- Messages: 832
- Inscription: 15 Nov 2007
Re: Formulaire mal rempli = message d'erreur
MikeR a écrit:tu utilises du JQuery, non?
class="required" force la validation du champ, il me semble ....
Je vois souvent cette classe sur prestashop et il me semble qu'elle sert uniquement pour l'astérisque placement/couleur.
Mais bon peut être là il utilise jquery...
- dax84
- Nouveau WRInaute

- Messages: 4
- Inscription: 1 Mar 2012
Re: Formulaire mal rempli = message d'erreur
merci pour vos réponses ! mais non ça ne viens pas de la class.
Le problème viens du fait que mon formulaire en html renvoie les informations collectées vers un formulaire en php.
Quand il y a un message d'erreur, le bouton submit n'est pas réinitialisé. Du coup pas moyen de renvoyer les données corrigées.
Le problème viens du fait que mon formulaire en html renvoie les informations collectées vers un formulaire en php.
Quand il y a un message d'erreur, le bouton submit n'est pas réinitialisé. Du coup pas moyen de renvoyer les données corrigées.
- franckM
- WRInaute impliqué

- Messages: 832
- Inscription: 15 Nov 2007
Re: Formulaire mal rempli = message d'erreur
Tu devrais traiter les données (PHP) dans le même fichier que ton formulaire.
Tu commences ta page du type:
Si, tu peux renvoyer les données vers ton formulaire en faisant un header('location:formulaire.html...) et en mettant les données collectées dans l'URL et en les récupérant avec GET.
Mais bon, comme dit plus haut, ce serait beaucoup plus simple de traiter tout dans le même fichier.
Tu commences ta page du type:
- Code: Tout sélectionner
<?php
if(isset($_POST('submit')) //il faut que tu rajoutes l'attribut name="submit" à ton input submit
{ traitement...}
?>
Et ensuite ta page html avec ton formulaire
Du coup pas moyen de renvoyer les données corrigées
Si, tu peux renvoyer les données vers ton formulaire en faisant un header('location:formulaire.html...) et en mettant les données collectées dans l'URL et en les récupérant avec GET.
Mais bon, comme dit plus haut, ce serait beaucoup plus simple de traiter tout dans le même fichier.
14 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


