session et post

session et post - PHP - Programmation

Marsh Posté le 29-04-2005 à 16:28:07    

Bonjour
 
je voudrais afficher l'un apres l'autre des element de formulaire (qu'il enregistre à la suite tout)
j'ai mes boutons submit 'caseaCocher' et 'textArea' ds un form indépendant
 
chacun des element de formulaire sont appeles par de includes
 
code
 
  if (isset($_POST['caseaCocher'])) {
   $_SESSION['caseaCocher']=$_POST['caseaCocher'];
   echo "post case";
  }
  if (isset($_SESSION['caseaCocher'])) {
   //include ("caseaCocher.php" );
   echo "apres avoir appuye sur caseaCocher";
  }
   
   
  if (isset($_POST['textArea'])) {
   $_SESSION['textArea']=$_POST['textArea'];
   echo "post text";
  }  
  if (isset($_SESSION['textArea'])){
   echo "apres avoir appuye sur textArea";
   //include ("form.php" );
  }
   
 
   
 ?>
 
Je comprends rien mes deux echo s'affiche alors que je n'ai meme pas appuyé sur un bouton, si je detruis au debut du programme ces deux valeurs de sessions avec unset voila ce qui se passe : si j'appuye sur le bouton textArea j'ai les 2 messages, si j'appuye sur caseaCocher  j'ai slment le mess de caseaCocher

Reply

Marsh Posté le 29-04-2005 à 16:28:07   

Reply

Marsh Posté le 29-04-2005 à 16:30:27    

Pour le textarea, même s'il est vide, il sera dans $_POST (contrairement aux checkbosque). Donc faut tester si sa valeur est vide.

Reply

Marsh Posté le 29-04-2005 à 17:04:32    

FlorentG a écrit :

contrairement aux checkbosque


 
 :lol:
 
edit
soyons serieux.  :ange:  
wouè ça c'est une erreur courante que je faisais beaucoup. http://www.designlaboratory.net/smileyyyy/ilestla.gif
 
il vaut mieux proceder ainsi:

Code :
  1. if (empty($_POST['textArea'])) {
  2. //rien
  3. }
  4. else
  5. {
  6.    $_SESSION['textArea']=$_POST['textArea'];
  7.    echo "post text";
  8. }


 
ou bien:

Code :
  1. if ($_POST['textArea'] != "" ) {
  2.    $_SESSION['textArea']=$_POST['textArea'];
  3.    echo "post text";
  4.   }


 
isset() et empty() sont souvent sources de confusion. d'après ce que j'en ai compris, isset "évalue" si la variable est affecté, c'est à dire qu'il repondra VRAI dans une condition même si $variable = "", parce qu'on l'a declaré.
tandis que empty() regarde si on lui a bien affectée une valeur differente de 0, NULL ou ""
 
 :jap:  


Message édité par pmusa le 29-04-2005 à 19:59:40
Reply

Sujets relatifs:

Leave a Replay

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