Variable de Session avec Input

Variable de Session avec Input - PHP - Programmation

Marsh Posté le 16-07-2009 à 15:17:03    

Bonjour à tous !
 
Je suis actuellement en train de créer une plateforme de e-mailing.
Pour ceci l'utilisateur de la plateforme à le choix entre différents critères,
Comme : le Sexe (2 checkbox) ou l'âge (2 input text), voir l'exemple après
Après avoir validé, j'aimerai afficher les résultats choisi par l'utilisateur.
C'est à dire de checker (valider) la checkbox si il l'avait checké et/ou de remettre la valeur dans le "input text" précédemment saisie.
 
Pour cela, j'ai utilisé les variable de Session "$_SESSION[' ']" comme ceci :

Code :
  1. Homme
  2.    <input style="position:relative; top: 2px;" type='checkbox' name="H"
  3. <?php
  4.    if( isset($_SESSION['H']) && $_SESSION['H'] == 1)
  5.         echo 'checked ';
  6. ?>
  7.    />


 
ou encore :

Code :
  1. <input type='text' size='10' name="age_inf" value="
  2.      <?php
  3. if( !empty($_SESSION['age_inf']))
  4.    echo $_SESSION['age_inf'];
  5.      ?>
  6. " />


 
Le problème c'est qu'une fois les critères choisi et le bouton "Valider" pressé les critères ne s'affichent pas, mais si j'appuie sur F5 pour recharger la page, les critères choisis auparavant apparaissent.
 
Si quelqu'un pouvait m'aider :-)
 
Merci d'avance !

Reply

Marsh Posté le 16-07-2009 à 15:17:03   

Reply

Marsh Posté le 17-07-2009 à 08:26:46    

Il faudrait un peu plus de code (voir où est-ce que tu set les variables de sessions) ;)
Et pour moi des boutons radio sont plus appropriés pour le sexe que des checkboxes :D (ou plutot un select)


Message édité par Profil supprimé le 17-07-2009 à 08:27:03
Reply

Marsh Posté le 17-07-2009 à 10:49:11    

Alors dans l'ordre je fais :
 

  • Tout d'abord je teste si la variable existe et si elle est à 1, si c'est le cas je coche la case, ça veut dire que l'utilisateur de la plateforme d'e-mailing a coché cette case
Code :
  1. Oui <input style="position:relative; top: 2px;" type='checkbox' name="photo_oui"
  2. <?php
  3.    if( isset($_SESSION['photo_oui']) && $_SESSION['photo_oui'] == 1)
  4. echo 'checked ';
  5. ?>
  6. />


  • Ensuite j'initialise toute les variables $_SESSION à 0 ou à ' ' pour pas que les cases soient cochés tout le temps
Code :
  1. $_SESSION['photo_oui'] = 0;


 

  • Enfin, je change le contenu de la variable si l'option a été coché
Code :
  1. if( isset($_POST['photo_oui']) )
  2. {
  3.    $envoyer_email_req .= "And Photo = '1' ";
  4.    $_SESSION['photo_oui'] = 1;
  5. }

Reply

Marsh Posté le 17-07-2009 à 10:54:37    

remplace ton  

Code :
  1. if( isset($_SESSION['photo_oui']) && $_SESSION['photo_oui'] == 1)


 
par  

Code :
  1. if( (isset($_SESSION['photo_oui']) || isset($_POST['photo_oui'])) && ($_SESSION['photo_oui'] == 1 ||  $_POST['photo_oui'] == 1))


 
 


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-07-2009 à 11:03:05    

Merci pour la rapidité de ta réponse Esox
 
Cependant j'ai un petit problème il me met :  
 

Code :
  1. Notice: Undefined index: photo_oui in C:\Program Files\WampServer\www\Blog\emailing.php on line 186
  2. />


 
Comment je peux remédier à cela ?

Reply

Marsh Posté le 17-07-2009 à 11:14:38    

Ah oui juste...

 
Code :
  1. if( (isset($_SESSION['photo_oui']) && $_SESSION['photo_oui'] == 1) ||  (isset($_POST['photo_oui']) &&  $_POST['photo_oui'] == 1))
 

Contrôle les parentèzes, il y en a peut-être une qui est mauvais endroit, j'ai pas de PHP sous la main pour tester


Message édité par esox_ch le 17-07-2009 à 11:14:53

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-07-2009 à 11:22:26    

Je crois pas qu'il y'ait un problème de paranthèses.
J'ai testé le dernier bout de code que tu m'as passé, il me fait exactement la même chose.
 
Je sais pas trop comment faire.
Tu as pas une autre idée ?

Reply

Marsh Posté le 17-07-2009 à 11:28:16    

Tu peux nous donner le code source entier?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-07-2009 à 11:36:35    

J'avais posté mon problème sur un autre forum.
Quelqu'un a réussi à me débloquer.
 
J'ai rajouté ceci tout au début de mon code php :  

Code :
  1. $voui = isset($_POST['validation_oui']);
  2. $vnon = isset($_POST['validation_non']);
  3. $_SESSION['validation_oui'] = ($voui) ? (($vnon) ? 0 : 1) : 0;
  4. $_SESSION['validation_non'] = ($vnon) ? (($voui) ? 0 : 1) : 0;


 
Je lui ai demandé de m'expliquer ce code parce que je n'utilise jamais cette méthode pour coder.
ça marche, mais je comprends pas grand chose ^^


Message édité par ozone--24 le 17-07-2009 à 11:37:23
Reply

Marsh Posté le 17-07-2009 à 11:41:13    

En fait ton problème venait (à mon avis) de l'endroit où tu as mis ton code PHP par rapport à où tu as mis ton code HTML.
Le fait qu'il t'ait demandé de mettre ce code tout au début résoud le problème (c'est en fait pour ça que je voulais voir tout ton code source)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-07-2009 à 11:41:13   

Reply

Marsh Posté le 17-07-2009 à 11:51:32    

Voila mon code source : http://dormeur.info.iut.u-bordeaux [...] ailing.php
 
Il est peut-être un peu effrayant ^^
 
Mais ce que j'avais pas vu, c'est que ça va marcher pour les critères qui font oui ou non, mais pour les critères comme l'âge ou la durée d'abonnement, c'est des input text, du coup je vois pas comment on peut faire.
 
Surtout que je vois pas trop ce que ça fait le bout de code que m'a passé la personne sur l'autre forum

Reply

Marsh Posté le 17-07-2009 à 12:03:14    

en fait son bout de code est la forme plus ou moins abbrégée de :
 

Code :
  1. if(isset($_POST['validation_oui']))
  2. $_SESSION['validation_oui']  == 1;
  3. else
  4. $_SESSION['validation_oui']  == 0;
  5.  
  6. if(isset($_POST['validation_non']))
  7. $_SESSION['validation_non']  == 1;
  8. else
  9. $_SESSION['validation_non']  == 0;


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-07-2009 à 17:40:35    

En fait il a voulu faire ça :

Code :
  1. if ($voui)
  2. {
  3.     if ($vnon)
  4.         $_SESSION['validation_oui'] = 0;
  5.     else
  6.         $_SESSION['validation_oui'] = 1;
  7. }
  8. else
  9.     $_SESSION['validation_oui'] = 0;

Reply

Marsh Posté le 17-07-2009 à 18:10:35    

Non :o  
Regarde mieux son code


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

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