Petit problème avec les cases à cocher !

Petit problème avec les cases à cocher ! - PHP - Programmation

Marsh Posté le 30-05-2009 à 01:18:37    

Bonsoir,
 
J'ai un petit problème avec une case à cocher, celle de la newsletter.
Si l'internaute veut s'inscrire à la newsletter, il doit cocher la case qui va avec.
 
Voici un extrait du formulaire :
 

Code :
  1. <p align="left" style="margin-left:70px"><input type="checkbox" name="newsletter" id="newsletter"
  2.                 value="oui" <?php echo getNewsletter('oui'); ?> checked="checked" />
  3.     Je souhaite recevoir par e-mail la Newsletter.<br/></p>


 
Si l'internaute coche cette case, la valeur "oui" est inscrite dans la base de donnée.
Donc quand il la coche, je n'ai aucun problème, la valeur "oui" est bien inscrite dans la base.
 
Par contre, s'il ne souhaite pas s'inscrire à la newsletter et qu'il décoche la case, voilà mon problème !! Lors de la validation, je suis directement redirectioner vers ma page index.php, et bien sur aucun enregistrement n'est effectué dans la base.
 
Donc en gros, ça marche quand il coche, mais ça bug quand il décoche !
 
 
 
Voici ma fonction getNewsletter, appelé dans le formulaire :
 

Code :
  1. function getNewsletter($newsletter)
  2. {
  3.  $default = '';
  4.  if (isset($_POST['newsletter_info']) and $_POST['newsletter_info'] == '')
  5.  {
  6.   $_POST['form_newsletter'] == $newsletter
  7.   {
  8.    $default='checked="checked"';
  9.   }
  10.  }
  11.  return $default;
  12. }


 
 
Un extrait de ma page de traitement :
 

Code :
  1. // Newsletter
  2. if(isset($_POST['newsletter']))
  3. {
  4.  $newsletter = trim($_POST['newsletter']);
  5.  $newsletter_result = checkNewsletter($newsletter);
  6.  if($newsletter_result == 'newsletterfalse')
  7.  {
  8.   $_SESSION['newsletter_info'] = '<span class="erreur">Erreur validation newsletter.</span><br/>';
  9.   $_SESSION['form_newsletter'] = '';
  10.   $_SESSION['erreurs']++;
  11.  }
  12.  else if($newsletter_result == 'ok')
  13.  {
  14.   $_SESSION['newsletter_info'] = '';
  15.   $_SESSION['form_newsletter'] = $newsletter;
  16.  }
  17. }
  18. else
  19. {
  20.  header('Location: ../index.php');
  21.  exit();
  22. }


 
 
 
Et enfin la fonction checkNewsletter appelée dans la page de traitement :
 

Code :
  1. function checkNewsletter($newsletter)
  2. {
  3.  if(!preg_match('#^(oui)*$#', $newsletter)) return 'newsletterfalse';
  4.  else return 'ok';
  5. }


 
 
Merci d'avance pour votre aide !

Reply

Marsh Posté le 30-05-2009 à 01:18:37   

Reply

Marsh Posté le 30-05-2009 à 14:19:28    

Bonjour,
 
J'ai réglé mon problème ;)

Reply

Marsh Posté le 30-05-2009 à 17:45:49    

Je te conseille de dire comment tu as fait au cas où quelqu'un en aurait besoin ;)

Reply

Marsh Posté le 30-05-2009 à 19:25:41    

toughzaa a écrit :

Je te conseille de dire comment tu as fait au cas où quelqu'un en aurait besoin ;)


 
 
Voici la réponse, dans la page traitement, il faut mettre ça :
 

Code :
  1. // Newsletter
  2.     if(isset($_POST['newsletter']) && ($_POST['newsletter'] == 'oui'))
  3. {
  4.      $newsletter = 'oui';
  5. }
  6. else
  7. {
  8.       $newsletter = '';
  9. }


 
 

Reply

Marsh Posté le 30-05-2009 à 21:38:59    

Merci ;)

Reply

Sujets relatifs:

Leave a Replay

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