Case à cocher ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Case à cocher ...

par Je Débute » 22 mai 2005, 12:05

Merci Alba

La symtaxe de simplification !!! il faut aussi apprendre !

par albat » 22 mai 2005, 11:28

Les cases à cocher fonctionnent effectivement ainsi.
Leur principe de gestion ne peut être changé.
En revanche, le code peut être simplifié, lui ! ;)
$ok = (isset($_POST['ok']) ? 1 : 0);
NB : cette écriture n'est vraiment utile que si tu as besoin d'attribuer une valeur à $ok.
Si tu as besoin de lancer une série d'instructions, tu ne peux te passer d'une structure if... (then)... else.

par Je Débute » 22 mai 2005, 08:28

Cyrano, Epeda, etc.

Merci.

Voici, selon vos indications, le code que j'ai placé pour récuperer la variable de coche

if (isset($_POST['ok']))
{
$ok = 1;
}
else
{
$ok= 0 ;
}

Ca marche parfaitement !

Je m'interroge cependant, il faudra donc faire cela à chaque fois qu'il y a une coche à traiter.

par Epeda » 21 mai 2005, 19:37

Ce n'est pas un traitement spécifique dans ton cas, c'est le traitement normal en PHP de tout formulaire HTML. :)

par Cyrano » 21 mai 2005, 17:30

Parce que si tu ne coches pas cette case, aucune valeur n'est envoyée et donc elle n'est pas incluse dans la variable $_POST ou $_GET selon la méthode choisie.

Pour t'en convaincre, juste avant le traitement, mets ceci :
<?php
echo("<pre>");
var_dump($_POST);
echo("</pre>");
?>
Tu verras exactement ce qu'envoie le formulaire.

par Invité » 21 mai 2005, 17:25

Je ne comprends pas pourquoi elle existe ou elle existe pas

J'ai dans mon formulaire :
<P><INPUT TYPE=CHECKBOX NAME="ok" >

J'ai dans mon fichier PHP
$ok = $_POST['ok'];

C'est un cas classique d'usage d'un chekbox me semble-t-il pourquoi un tratement spécifique dans mon cas ?

par Cyrano » 21 mai 2005, 17:15

Ce qui veut dire qu'avant de traiter cette valeur, il te faut d'abord en tester l'existence avec
if(isset($variable)) 
{
    // Traitement normal
}
else
{
    // la variable n'existe pas, on fait autre chose
}

par Invité » 21 mai 2005, 17:11

Oui, j'ai bien refait avec d'autres valeurs

Si je ne coche pas la case elle me renvoie une erreur (comme si NULL ne lui convenait pas), mais fais le bon test.
Si je coche la case, tout est bon ... pas d'erreur

par Epeda » 21 mai 2005, 16:20

Il faut faire un test avec isset() et éventuellement empty() avant d'attribuer des valeur à la variable $ok :)

par Cyrano » 21 mai 2005, 15:06

est-ce que l'attribut "name" de ta case à cocher est bien "echelle" ?

Case à cocher ...

par Je Débute » 21 mai 2005, 15:03

J'ai placé une case à cocher dans un formulaire
Quand je recupère l'info du formulaire, si je n'ai pas coché, je reçois un message comme quoi ma variable de formulaire n'est pas valide

$ok = $_POST["echelle"];
Notice: Undefined index: echelle in c:\program files\easyphp1-8\www\3p\appelprogramme.php on line 16


J'ai imprimé la récup pour voir
quand ce n'est pas coché =rien
quand c'est coché = on

Dans tous les cas mon test marche sur l'aternative Coché/pas Coché.