BUG : session, header, switch... je sais pas d'où ça vient !

BUG : session, header, switch... je sais pas d'où ça vient ! - PHP - Programmation

Marsh Posté le 17-12-2003 à 11:39:11    

Bonjour à tous...
 
en testant mon site... d'un coup je sais pas pourquoi..Mais une de mes pages ne fonctionne plus (alors que je n'y ai pas touché depuis bien longtemps !!!) je cherche l'erreur depuis hier soir... je trouve pas... voici les symptomes, visiblement les sessions ne s'enregistrent pas.. il passe pas à la page suivante... mais ne m'indique pas d'erreur.. tous mes script de gestions de champs vides n'indiquent rien... bref je reviens sur la même page en boucle... c penible !!!
 
voici la page : http://www.clonecopy.net/php/devis/index_etape2.php
 
voici le code :
 

Code :
  1. <?
  2. session_name('devis1');
  3. session_start();
  4. include("../includes/variables.php" );
  5. //error_reporting(E_ALL);
  6. $option_finition=$_POST['type_finitions'];
  7. switch ($option_finition)
  8. {
  9. case type0 : $option0="checked"; break;
  10. case type1 : $option1="checked";break;
  11. case type2 : $option2="checked";break;
  12. case type3 : $option3="checked";break;
  13. case type4 : $option4="checked";break;
  14. case type5 : $option5="checked";break;
  15. default : $option0="checked"; break;
  16. }
  17. if ($submit2)
  18. {
  19.  $_SESSION['nb_ex']=$_POST['type_nb_ex'];
  20.  $_SESSION['type_finitions']=$_POST['type_finitions'];
  21.  $ex=$_SESSION['nb_ex'];
  22.  if (empty($ex))
  23.   {
  24.   $field="Le champ est vide !";
  25.   }
  26.  if ($ex <= '0')
  27.   {
  28.   $field="Doit être supérieur à 1 !";
  29.   }
  30.  else{
  31.  //if (!empty($ex) && ($ex >=1)){
  32.  $test_finitions=$_SESSION['type_finitions'];
  33.  switch ($test_finitions)
  34.   {
  35.   case type0 : $_SESSION['finitions']="Aucune"; $_SESSION['tarifs_finitions']="aucune";break;
  36.   case type1 : $_SESSION['finitions']="Agraffes"; $_SESSION['tarifs_finitions']="agraffes"; break;
  37.   case type2 : $_SESSION['finitions']="Reliure plastique noire, fond noir et couverture plastique"; $_SESSION['tarifs_finitions']="tarifs_finitions_plastique"; break;
  38.   case type3 : $_SESSION['finitions']="Reliure plastique blanche, fond blanc et couverture plastique"; $_SESSION['tarifs_finitions']="tarifs_finitions_plastique";break;
  39.   case type4 : $_SESSION['finitions']="Thermo reliure noire, couverture et fond plastique"; $_SESSION['tarifs_finitions']="tarifs_finitions_metalique"; break;
  40.   case type5 : $_SESSION['finitions']="Thermo reliure blanche, couverture et fond plastique"; $_SESSION['tarifs_finitions']="tarifs_finitions_metalique";break;
  41.   }
  42.   $test_rv=$_POST['type_rv'];
  43.  switch ($test_rv)
  44.   {
  45.   case type1 : $_SESSION['rv']="Recto seul"; break;
  46.   case type2 : $_SESSION['rv']="Recto/verso"; break;
  47.   }
  48. //include("calcul_devis.php" );
  49.  header("Location: index_etape3.php?".session_name()."=".session_id());
  50.  }
  51. }
  52. //}
  53. ?>

Reply

Marsh Posté le 17-12-2003 à 11:39:11   

Reply

Marsh Posté le 17-12-2003 à 11:43:08    

le session_start se mettrait pas en 1er?

Reply

Marsh Posté le 17-12-2003 à 11:44:05    

bah justement je crois que non... on nomme la session avant de la demarrer.. enfin ça marche bien sur toutes mes pages comme ça !

Reply

Marsh Posté le 17-12-2003 à 11:44:48    

voici le formulaire (en resumé) :
 

Code :
  1. <form action="<? $_SERVER['PHP_SELF']; ?>" method="post">
  2. <input name=type_nb_ex type=text id="nb_ex" value="<? echo $_SESSION['nb_ex'];  ?>" size=20>
  3. <input name=type_rv type=radio class="option1" value=type1 checked>
  4. <input type=radio class="option1" name=type_rv value=type2>
  5. <input name=type_finitions class="option1" type=radio value=type0 <? echo $option0; ?>>
  6. <input type=radio class="option1" name=type_finitions value=type1 <? echo $option1; ?>>
  7. <input type=radio class="option1" name=type_finitions value=type2 <? echo $option2; ?>>
  8. <input type=radio class="option1" name=type_finitions value=type3 <? echo $option3; ?>>
  9. <input type=radio class="option1" name=type_finitions value=type4 <? echo $option4; ?>>
  10. <input name=type_finitions class="option1" type=radio value=type5 <? echo $option5; ?>>
  11. <input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>">
  12. <input name="submit2" type="submit" id="submit2" value="Envoyez">
  13. <input name=reset2 type=reset id="reset2" value=Effacer>
  14. </form>

Reply

Marsh Posté le 17-12-2003 à 12:03:18    

chacal_one333 a écrit :

le session_start se mettrait pas en 1er?


 
je confirme :
 
session_name([opt nom])  
 
Elle vous permet de déterminer le nom de la variable transmise via cookie ou via URL (par défaut PHPSESSID). Si vous lui passez un argument, elle changera le nom par défaut. (à utiliser avant d'initialiser une session)

Reply

Marsh Posté le 17-12-2003 à 12:21:51    

bon voila ça remarche... j'ai pas trop compris.. j'ai rien changé...  
 
sauf trafiqué un peu ça :

Code :
  1. <input name="type_nb_ex" type="text" id="nb_ex" value="<? echo $_SESSION['nb_ex'];  ?>" size="20">


 
et là visiblement ça remarche... je sais pas pourquoi!

Reply

Sujets relatifs:

Leave a Replay

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