[sessions]pb de variables

pb de variables [sessions] - PHP - Programmation

Marsh Posté le 02-06-2005 à 14:26:10    

Bonjour,
  je suis depuis peu sur le php et en moins sur les sessions mais je connais les fondamentaux. Je voulais vous demander comment ça se fait que je perde mes variables de sessions entre deux chargement de pages alors que sur chacune de mes pages j'ai mis un session_start();  :??: J'y suis depuis hier et j'ai fait plusieurs forum sans que personne ne trouve de réponse alors si vous pouviez m'aider!!

Reply

Marsh Posté le 02-06-2005 à 14:26:10   

Reply

Marsh Posté le 02-06-2005 à 14:27:25    

Balance le code peut être!

Reply

Marsh Posté le 02-06-2005 à 14:33:13    

Code :
  1. <form name='first' method='post' action='Transition.php' target='client'>
  2.      Entrez votre n&#186; de Client :
  3.      <input type='text' name='text1' maxlength='4' size='5' height='12'>
  4.      (4 caract&#233;res)
  5.      <p>
  6.      Entrez votre mot de passe :
  7.      <input type='password' name='text2' maxlength='10' size='11' height='12'>
  8.      <input type='submit' name='button1' value='Validation'>
  9.     </form>

Ca c'est le code de mon formuaire qui reccueil les infos.

Code :
  1. <?php
  2.   $_SESSION['no_client'] = $_POST['text1'];
  3.   $_SESSION['pswd'] = $_POST['text2'];
  4.   if(empty($_SESSION['no_client']) && empty($_SESSION['pswd'])){
  5.    include("Client.php" );
  6.    echo "<b><font color=RED>Veuillez saisir un n&#186; Client ainsi qu'un mot de pass s'il vous pla&#238;t.</font></b>";
  7.    exit();
  8.   }
  9.   else if(empty($_SESSION['no_client'])){
  10.    include("Client.php" );
  11.    echo "<b><font color=RED>Veuillez saisir un n&#186; Client s'il vous pla&#238;t.</font></b>";
  12.    exit();
  13.   }
  14.   else if(empty($_SESSION['pswd'])){
  15.    include("Client.php" );
  16.    echo "<b><font color=red>Veuillez saisir un mot de passe s'il vous pla&#238;t.</font></b>";
  17.    exit();
  18.   }
  19.   else{
  20.    if(!$connect=@mysql_connect('localhost', $_SESSION['no_client'], $_SESSION['pswd'])){
  21.     echo "<b><font color=RED>Mot de passe ou identifiant incorrects</font></b>";
  22.     exit();
  23.    }
  24.    $dbconnect=@mysql_select_db('beplan', $connect)
  25.    or die("Connection refus&#233;e à la base de donn&#233;e" );
  26.    $req=@mysql_query("select Raison_Sociale, Pswd, Civilite, Nom, Prenom from client where Code_Client='".$_SESSION['no_client']."' and Pswd='".$_SESSION['pswd']."';" )
  27.    or die("Requ&#234;te non authoris&#233;e".mysql_error());
  28.    $res=@mysql_fetch_assoc($req);
  29.    if($res==0){
  30.     echo "<b><font color=RED>Identifiant ou mot de passe incorrect.</font></b>";
  31.     exit();
  32.    }
  33.   }
  34.   echo session_id();
  35.   include("Telechargement.php" );
  36.  ?>

La c'est le code d'une page qui accède à la base de donnée.

Code :
  1. <?php
  2. if(!isset($_SESSION['no_client'])){
  3.  session_start();
  4.  echo session_id();
  5.  echo "toto".$_SESSION['no_client'];
  6. }
  7. if(isset($_SESSION['no_client']))
  8.  echo "C'est bon elle existe";
  9. else
  10.  echo "Perdu";
  11. print("
  12.    <script language='javascript'>
  13.     parent.parent.gauche.window.location='TelechargementGauche.php';
  14.    </script>
  15.   " );
  16. ?>

Et c'est sur cette page que le no_client est inconnue lorsque je la charge avec le lien contenu dans cette page:

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <html>
  5. <head>
  6.  <title>Telechargementgauche</title>
  7.  <SCRIPT LANGUAGE="JavaScript">
  8.  <!--masque
  9.   if (parent.frames.length < 1)
  10.   {
  11.      document.location.href = 'index.php';
  12.   }
  13.  //-->
  14.  </SCRIPT>
  15. </head>
  16. <body >
  17.  <?php
  18.   if(isset($_SESSION['no_client']))
  19.    echo $no_client;
  20.  ?>
  21.  <p>
  22.  <a href="Telechargement.php" target="client">T&#233;l&#233;chargement</a>
  23.  <p>
  24.  <a href="Probleme.php" target="espace">Assistance Technique</a>
  25. </body>
  26. </HTML>

.
En sachant que j'ai des session_start() à presque toutes les pages!!

Reply

Marsh Posté le 02-06-2005 à 14:34:14    

Bah je vois pas de session_start() partout

Reply

Marsh Posté le 02-06-2005 à 14:35:49    

Je les ai zapé sa prends de la place. Mais croi moi il y en a a toutes les pages même celles qui en ont pas un besoin particulier

Reply

Marsh Posté le 02-06-2005 à 15:50:33    

je sais que ça donne mal a la tête tout ce code mais ya pas un mec qui s'y connait au také qui pourait m'aider. Je crois que mes neurones ont fondus depuis le temps que j'y suis

Reply

Marsh Posté le 02-06-2005 à 15:58:08    

Les sessions sont activées au moins?

Reply

Marsh Posté le 02-06-2005 à 16:00:43    

Oui puisque ça marchait avant que j'ai à fairte des changements d'enchaînement de pages

Reply

Marsh Posté le 02-06-2005 à 16:02:50    

En fait quand je fais session_start il le prend comme si c'était la première fois que j'ouvrais une session

Reply

Marsh Posté le 02-06-2005 à 20:23:23    

essais un <?echo session_id();?> pour voir si tu es bien dans la même session.

Reply

Marsh Posté le 02-06-2005 à 20:23:23   

Reply

Marsh Posté le 03-06-2005 à 09:32:15    

Je l'ai fait et je suis plus dans la même session. A chaque fois que je valide mon formulaire je change de session aussi (ce qui est normal je pense)

Reply

Marsh Posté le 05-06-2005 à 17:36:01    

Bon ton gros probleme viens bien de SESSION_START();
Il faut dans tout les cas que ton SESSION_START(); soit en debut de code.
 
<?php
SESSION_START();
...
?>
 
De meme, tu na pas ouvert tes sessions sur ta page 2
 
Dans ta page 3, tu ouvre avec SESSION_START() dans un condition qui comprend une session :
 

Code :
  1. if(!isset($_SESSION['no_client'])){
  2.          session_start();


 
C'est pas possible, met session_start(); au tout debut.
 
Page 4 pas de probleme de sessions


Message édité par Badze le 05-06-2005 à 17:37:04
Reply

Marsh Posté le 05-06-2005 à 19:52:42    

Citation :

Oui puisque ça marchait avant que j'ai à fairte des changements d'enchaînement de pages


 
Ben justement, c'est à ce moment la qu'on voit si les sessions fonctionnent ...

Reply

Marsh Posté le 05-06-2005 à 20:57:02    

autrement, je vois que dans ta page 2 tu fais

Code :
  1. include("Client.php" );


 
dans ta page client.php, n'ouvre pas de session sachant quel sera deja ouverte sur cette page principale.


Message édité par Badze le 05-06-2005 à 20:58:03
Reply

Sujets relatifs:

Leave a Replay

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