begin process at 2012 02 14 16:58:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Rendre un champ obligatoire si un bouton est coché


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Rendre un champ obligatoire si un bouton est coché

mardi 16 juin 2009 à 15:01:38 | Rendre un champ obligatoire si un bouton est coché

Frystie01

Bonjour,
j'aimerais rendre un champ obligatoire uniquement si un bouton est coché.
J'ai fait plusieurs essais mais il y a toujours un truc qui bloque : soit le formulaire s'envoie même si le champ n'est pas remplit, soit il ne s'envoie pas même si tout est OK...
Je commence à désespérer, je ne trouve pas non plus ma solution sur les forums....
Une idée ?
Merci d'avance.
mardi 16 juin 2009 à 15:15:39 | Re : Rendre un champ obligatoire si un bouton est coché

TychoBrahe

Salut,

Pour commencer tu ne pourras jamais forcer un client a ce genre de conditions, il te faudra toujours une vérification côté serveur pour la gestion de ce genre d'erreur. Après, tu peux faire un petit contrôle côté client en javascript qui te permet de désactiver le bouton d'envie du formulaire tant que tous les champs obligatoires ne sont pas remplis.
mardi 16 juin 2009 à 18:54:52 | Re : Rendre un champ obligatoire si un bouton est coché

kohntark

Membre Club
Salut,

... et puis pour pouvoir t'aider il faudrait fournir ce que tu as déjà tenté.


Kohntark -

mercredi 17 juin 2009 à 10:30:27 | Re : Rendre un champ obligatoire si un bouton est coché

Frystie01

J'ai peut-être pas été très clair désolé,
donc voici mon code
(sachant que mon bouton est "elect1" avec pour valeur "Oui je veux plus de 1000W/10m2" et le champs à remplir "desc"

if($_POST["elect1"]=="Oui je veux plus de 1000W/10m2"){}
elseif (trim($desc)=="")
{
        echo "<br /><br /><br /><br /><br /><br /><p align=center><b>ERREUR : VEUILLEZ COMPLETER INDIQUER LE DETAIL DE VOS APPAREILS ELECTRIQUES SVP</b>";?>
        <br /><a href="javascript:history.go(-1)">Retour au formulaire</a></p><?
}


Le problème c'est que ce code ne fait qu'obliger à compléter le champ "desc", je voudrais qu'il soit obligatoire que si le bouton "elect1" est coché.
Le but c'est que si les gens demandent plus d'électricité dans leur stand ils doivent décrire leurs appareils électriques qui seront utilisés... Sinon ce n'est pas la peine...

_______________________________________________
MYD-C . myd-c.over-blog.com
jeudi 18 juin 2009 à 16:20:42 | Re : Rendre un champ obligatoire si un bouton est coché

roymatthieu

Salut,

Tu utilises un ESLEIF, ce qui dans ton cas n'est pas bon.

C'est pas bon car si une condition du jeu de if  elseif est respectée, il ne vérifie plus celle qui suive.

Je te traduit ton code :

if($_POST["elect1"]=="Oui je veux plus de 1000W/10m2"){}
elseif (trim($desc)=="")
{
        echo "<br /><br /><br /><br /><br /><br /><p align=center><b>ERREUR : VEUILLEZ COMPLETER INDIQUER LE DETAIL DE VOS APPAREILS ELECTRIQUES SVP</b>";?>
        <br /><a href="javascript:history.go(-1)">Retour au formulaire</a></p><?
}

Si $_POST["elect1"]=="Oui je veux plus de 1000W/10m2" -> On ne fait rien.

Sinon :

Alors si trim($desc)=="" -> On affiche ton "echo"

Essaye ça :

if($_POST["elect1"]=="Oui je veux plus de 1000W/10m2"){

if (trim($desc)=="")
{
        echo "<br /><br /><br /><br /><br /><br /><p align=center><b>ERREUR : VEUILLEZ COMPLETER INDIQUER LE DETAIL DE VOS APPAREILS ELECTRIQUES SVP</b>";?>
        <br /><a href="javascript:history.go(-1)">Retour au formulaire</a></p><?
}
}

J'espère avoir compris ton problème et avoir su t'aider.
vendredi 19 juin 2009 à 13:00:31 | Re : Rendre un champ obligatoire si un bouton est coché

Frystie01


Merci de ta réponse,
j'ai essayé mais ça ne marche toujours pas, soit le formulaire s'envoie même si le champ n'est pas remplit soit j'arrive sur une page blanche...

Peut-être faut il mettre un autre code pour dire ce qu'il doit faire si la case n'est pas coché avec
if($_POST["elect1"]==""){.....
mais ça n'a pas l'air de marcher non plus...
_______________________________________________
MYD-C . myd-c.over-blog.com
vendredi 19 juin 2009 à 14:26:03 | Re : Rendre un champ obligatoire si un bouton est coché

Frystie01

Ce qui marche le mieux c'est ça :

if($_POST["elect1"]=="Oui je veux plus de 1000W/10m2"){

    if (trim($desc)=="")
    {
            echo "<br /><br /><br /><br /><br /><br /><p align=center><b>ERREUR </b>";?>
            <br /><a href="javascript:history.go(-1)">Retour au formulaire</a></p><?
    }

}


Là si la case n'est pas cochée pas de souci, il s'envoie,
si elle est cochée mais que le champs n'est pas rempli : pas de souci il ne s'envoie pas
Par contre si la case est coché et que le champ l'est aussi : j'arrive sur une page blanche alors que le message devrait s'envoyer.
Que faire ???

_______________________________________________
MYD-C . myd-c.over-blog.com
vendredi 19 juin 2009 à 16:21:03 | Re : Rendre un champ obligatoire si un bouton est coché

kohntark

Membre Club
Je ne vois pas la différence avec le code de roymatthieu (hormis le echo) ???

Pour ta question il faudrait voir le reste du code. C'est un mail que tu envoies ?

Comme l'a évoqué TychoBrahe, que tu ne procèdes pas de la bonne manière, tu devrais avoir ce schéma :

page formulaire
=> contrôle par un script javascript que les données sont correctement remplies
  => pas OK -> message "erreur, veuillez remplir tous les champs" Pas d'envoi du formulaire
  => OK -> soumission à la page traitement

page traitement :
=> contrôle et sécurisation des données reçues
if($_POST["elect1"] == "Oui je veux plus de 1000W/10m2" && !empty(trim($desc)) && strip_tags($_POST['autres_données']) && [autres données] ...) {
 
// envoi du mail

} else { // si ce else est exécuté c'est que qq chose n'est pas normal (tentative d'intrusion, de spam, etc ...)
  // mail au webmaster pour information
}

NB : ou et comment est définie $desc ?


Cordialement,


Kohntark -

lundi 22 juin 2009 à 11:33:32 | Re : Rendre un champ obligatoire si un bouton est coché

Frystie01

Donc je devrais avoir le message d'erreur et l'envoi du mail direcetement sur mon formulaire en html,
et mes contrôles sur mon autre page en php.
Le problème c'est que j'y connais rien javascript lol
Pour "desc", et même chose pour les autres champs, il est définit par :
$desc=$_POST["desc"];

J'ai plusieurs code de ce style là pour contrôler :
elseif (trim($nom)=="")
{
        echo "<br /><br /><br /><br /><br /><br /><p align=center><b>ERREUR : VOTRE NOM EST VIDE</b>";?>
        <br /><a href="javascript:history.go(-1)">Retour au formulaire</a></p><?
}

ça pour envoyer :
else {
//Envoie le message
mail($destinataire,$objet2,$message,$from);

echo "<br /><br /><br /><br /><br /><br /><p align=center><b>Votre message a bien &eacute;t&eacute; envoy&eacute;</b>";

}

Tout ça marchait tout bien jusqu'à ce double contrôle...
Je ne sais pas si quelqu'un a déjà quelque chose de fait dans ce style que je vois et surtout comprenne mieux parce que vous l'aurez compris je débute et j'ai beaucoup de mal...




_______________________________________________
MYD-C . myd-c.over-blog.com
lundi 22 juin 2009 à 20:45:19 | Re : Rendre un champ obligatoire si un bouton est coché

kohntark

Membre Club
Donc je devrais avoir le message d'erreur et l'envoi du mail direcetement sur mon formulaire en html,
et mes contrôles sur mon autre page en php.

=>
Non !!
J'ai l'impression qu'il faut rappeler le côté client / serveur d'une requête http :
Dans ta page HTML qui contient le formulaire tu contrôles que les champs soient correctement remplis, si ils ne le sont pas tu informes l'utilisateur (par un alert par exemple)  => c'est côté client que ça se passe (HTML, CSS, javascript, ...)
Il n'y a donc pas soumission (d'envoi) du formulaire (cad client => serveur)

Si les champs sont OK le formulaire est soumis au serveur. Ce dernier effectue un contrôle des données postées. Si elles ne sont pas correctes c'est que l'utilisateur a tenté d'envoyer une requête sans passer par le formulaire, ça peut être une tentative de piratage (donc envoie d'un mail à l'admin, bannissement de l'ip, ....)
Ensuite seulement tu envoies le mail.
Un mail ne peut pas être envoyé côté client (javascript) mais uniquement côté serveur (php)

Tout ça marchait tout bien jusqu'à ce double contrôle...
=>
correction :o) ... semblait bien marcher. Je dis ça car tu t'exposes à de très sérieux problèmes de sécurité et il est très facile d'utiliser ton formulaire pour envoyer des mails sous le nom "tartanpion" ou "frystle" à des milliers de personnes (fais une recherche sur "php mail injection headers")

Je te laisse chercher également pour l'exemple demandé car il y en a des centaines de milliers sur le net.

Cordialement,

Kohntark -


1 2

Cette discussion est classée dans : bouton, champ, rendre, coché, obligatoire


Répondre à ce message

Sujets en rapport avec ce message

Rendre un champ obligatoire si 1 bouton radio coché [ par Frystie01 ] Bonjour tout le monde,j'ai 2 boutons radio dans un document html et en dessous un champ à remplir que j'aimerais rendre obligatoire seulement si le 2e dreamweaver champ obligatoire [ par cobra176 ] bonjour tousj'ai commencé a travailler avec dreamweaver , et j'ai réaliser un formulaire connécte a un base sql ( j'utilise esay-php pour cela)je réal Bouton, post submit isset ne fonctionne plus... [ par morbak01 ] Bonjour, J'ai une page qui contient des boutons. et selon le bouton kiké, la page doit se recharger et executer une action particuliere. Ca à marché champ upload dans un formulaire [ par mahamourta ] Salut J'ai inserer un champ upload dans mon formulaire d'inscription.Un bouton de validation des informations se trouve deja dans ce formulaire.L'or Rendre inactif un bouton [ par wadpap13 ] Bonjour à tous !Cette question vous paraitra surement "légère" mais je n'arrive pas à trouver comment desactiver un bouton de type submit ou button un bouton cocher pour somettre formulaire [ par pyranhaz ] Bonjour,Comment faire pour obliger de cocher le bouton cocher pour soummetre le formulaire ???un simple vérification ne m'intéresse pas, je veux absol insertion texte [ par MasterJmC ] Salut est ce que quelqu'un pourrait me dire comment faire pour insérer des caractères dans un champ texte de formulaire à partir d'une image ou d'un b Insertion automatique de texte dans un champ de texte. [ par Ang3lo ] Salut,J'aimerais savoir comment peut-on inserer du texte dans un champ de texte automatiquement, juste en cliquant sur un bouton, à la manière des for mettre une valeur dans un champ [ par metis15 ] Bonjour,je ne suis pas surdoué du code , plutôt le contraire.Je souhaite que le clic sur un bouton dit CONTACT, qui déclanche l'apparition d'une page rendre saisi des champs obligatoire [ par aaaa2050 ] Bonjour tout le monde, j au une page de contact ou je veux rendre le saisi dans les champs de formulaire obligatoire; car meme je laisse les champs


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,142 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales