erreur "undefined index" lors controle checkbox

erreur "undefined index" lors controle checkbox - PHP - Programmation

Marsh Posté le 24-01-2005 à 12:24:05    

Bonjour à tous,
 
mon script php sert à l'inscription d'un membre. L'ensemble des tests sur le bon remplissage du formulaire fonctionne sauf pour ce qui concerne les checkbox. Si le membre qui s'inscrit coche la case, ça fonctionne mais j'ai un message d'erreur si le membre ne coche pas la case (ce qu'il n'est pas obligé de faire)
 
Voici mon script (simplifié) :

Code :
  1. // si le formulaire a été validé
  2. $action = (isset($_POST['action']) ) ? $_POST['action'] : Null;
  3. if ($action)
  4. {
  5.    $pseudomembre = $_POST['pseudomembre'];
  6.    $emailmembre = $_POST['emailmembre'];
  7.    // voici la case à cocher
  8.    $newslettermembre = $_POST['newslettermembre'];
  9. }
  10. ?>
  11. <html><head></head>
  12. <body>
  13. <form method="post" action="inscription.php">
  14. Pseudo : <input type="text" name="pseudomembre" size="20" maxlength="20" value="<?  echo (isset($_POST['pseudomembre']) ) ? $_POST['pseudomembre'] : NULL; ?>">*<br>
  15. Email : <input type="text" name="emailmembre" size ="40" maxlength="50" value="<?  echo (isset($_POST['emailmembre']) ) ? $_POST['emailmembre'] : NULL; ?>">*<br>
  16. <input type="checkbox" name="newslettermembre" value="<?  echo (isset($_POST['newslettermembre']) ) ? $_POST['newslettermembre'] : NULL; ?>"> Je souhaite recevoir la newsletter<br>
  17. <input type="hidden" name="action" value="1">
  18. <input type="submit" name="submit" value="S'inscrire !">
  19. <input type="reset" value="Effacer" >
  20. </form>


 
Sauriez-vous où cela cloche ? Les checkbox ont-elles un fonctionnement différent ?
 
Merci par avance de votre aide en tout cas. J'ai épuré le script à l'extrème pour que nous n'ayez que l'essentiel. J'ai peut être enlevé des choses importantes. Dans ce cas, n'hésitez pas à me le dire.
 
Amicalement,
Jean-Marc

Reply

Marsh Posté le 24-01-2005 à 12:24:05   

Reply

Marsh Posté le 24-01-2005 à 12:27:51    

Ouais, si une checkbox n'est pas cochée, elle sera pas dans $_POST. Si elle est cochée, elle sera dans $_POST avec pour valeur 'on'

Reply

Marsh Posté le 24-01-2005 à 12:30:25    

ah ok, merci. Mais j'ai une deuxième checkbox qui doit etre cochée, elle. Comment je peux la tester ?

Reply

Marsh Posté le 24-01-2005 à 12:32:51    

Simplement comme ça :

Code :
  1. if(isset($_POST['macheckboc'])) {
  2.   // Ok
  3. } else {
  4.   // Dzzzzt elle est pas cochée
  5. }


Message édité par FlorentG le 24-01-2005 à 12:33:07
Reply

Marsh Posté le 24-01-2005 à 12:46:03    

Démo de formulaire multi checkbox :
 
http://www.surleau.com/temp/boxes.php
 
Le truc nomer les checkboxs avec le même nom en finissant par [] pour récupérer un tableau ;)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-01-2005 à 13:06:10    

eh bin, merci à vous pour votre aide et pour le lien   :jap:  :jap:  
 :hello:  
 
Jean-Marc

Reply

Marsh Posté le 24-01-2005 à 13:12:56    

De rien !
 
Note pour FlorentG :
 
Heu toi, t'as pas le drois de faire comme ça hein !
Mettre [] dans un attribut 'name' n'est pas compliant, alors attention, hein, je te surveille :o


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-01-2005 à 13:44:16    

Mara's dad a écrit :

De rien !
 
Note pour FlorentG :
 
Heu toi, t'as pas le drois de faire comme ça hein !
Mettre [] dans un attribut 'name' n'est pas compliant, alors attention, hein, je te surveille :o


 
:??: Quoi :??:
 
J'ai rien dit de tel :??:

Reply

Marsh Posté le 24-01-2005 à 14:27:50    

C'est juste que je viens de lire : http://forum.hardware.fr/hardwaref [...] 3311-1.htm
Donc je précise juste au passage que c'est pas W3C compliant, même si tout le monde le fait quand même ;)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed