begin process at 2010 02 10 14:34:06
  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 Champ obligatoire [ par chlock ] Salut a tous, j'ai un formulaire et j'aimerai bloquer l'envoi tant que certains champs ne sont pas rempli. et qu'unefois le formulaire rempli l'envoi PHP: récupérer le champ d'un formulaire sans Bouton! [ par brahma ] hello ,avec php: comment puis je récupérer la valeur d'un champ d'un formulaire, lorsque l'utilisateur me donne la main en passant par un lien hyperte 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é 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,733 sec (4)

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