Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1582 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Sessions qui disparaissent

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Sessions qui disparaissent

n°720765
urd-sama
waste of space
Posté le 10-05-2004 à 16:03:26  profilanswer
 

Bonjour tous
Voila j'ai un petit problème au niveau des sessions PHP.
voici le code que je vais tenter d'expliquer au plus simpe.
 
page d'index:

Code :
  1. <?php
  2.    session_start();
  3. ?>
  4. <html>
  5.    <head>
  6.       meta et styles
  7.    </head>
  8.    <body>
  9.       <div id="all">
  10.      <div id="left">
  11.             <img src="images/php.gif" style="margin-bottom:50px;">
  12.             <?php
  13.                echo 'a'.$_SESSION['user'].'a'.$_SESSION['pass'].'a';
  14.                   ?>
  15.                   <form action="includes/login.php" method="post">
  16.                   <table style="width:100%;">
  17.                      <tr>
  18.                         <td colspan="2" style="text-align:center; border-bottom:1px solid chocolate;">Login administrateur</td>
  19.                      </tr>
  20.                      <tr>
  21.                         <td class="login" style="text-align:right;">Utilisateur:</td>
  22.                         <td><input name="user" type="text" class="login" size="10">
  23.                      </tr>
  24.                      <tr>
  25.               <td class="login" style="text-align:right;">Mot de passe:</td>
  26.               <td><input name="pass" type="password" class="login" size="10"></td>
  27.            </tr>
  28.            <tr>
  29.               <td colspan="2" style="text-align:center; border-top:1px solid chocolate;"><input type="submit" value="Login"></td>
  30.            </tr>
  31.         </table>
  32.         </form>
  33.   </div>
  34.   <div id="right">
  35.      <div id="main">
  36.         <?php
  37.            $page = $_GET['page'];
  38.            switch ($page)
  39.            {
  40.               case resultat :
  41.                  include 'resultatRequete.php';
  42.                  break;
  43.               case admin:
  44.                  include 'admin.php';
  45.                  break;
  46.               case error:
  47.                  echo 'Erreur de connexion';
  48.                  break;
  49.               default :
  50.                  include 'choixVue.php';
  51.                  break;
  52.            }
  53.         ?>
  54.      </div>
  55.   </div>
  56.   <div class="spacer"></div>
  57.   <div id="bottom">
  58.      xxx
  59.   </div>
  60.    </div>
  61.    </body>
  62. </html>


 
la page choixvue.php (celle par défaut lorsqu'on ouvre l'index), va effectuer une connexion sur une base et afficher des résultats.
 
connexion.php

Code :
  1. <?php
  2.   if (!($connexion = @OCIPLogon($_SESSION['user'],$_SESSION['pass'],"xxx" ))) {
  3.      $_SESSION['user'] = 'OV_USER';
  4.      $_SESSION['pass'] = 'x';
  5.      //echo 'a'.$_SESSION['user'].'a'.$_SESSION['pass'].'a';
  6.      $connexion = OCIPLogon($_SESSION['user'],$_SESSION['pass'],"xxx" );
  7.   }
  8. php?>


cette page de connexion va tester la connexion sur oracle avec le nom d'utilisateur et mot de passe dans les session. en premier lieu, elles sont vides, donc on va aller dans l'erreur et mettre des valeurs par défauts aux sessions (ov_user). on refait la connexion.
 
retournons à la page d'index, cette derniere propose un login qui sera envoyé à la page login.php

Code :
  1. <?php
  2.   $_SESSION['user'] = $_POST['user'];;
  3.   $_SESSION['pass'] = $_POST['pass'];
  4.   //echo 'a'.$_SESSION['user'].'a'.$_SESSION['pass'].'a';
  5.   include 'connexion.php';
  6.   //echo 'a'.$_SESSION['user'].'a'.$_SESSION['pass'].'a';
  7.   if ($_SESSION['user'] == "OV_ADMIN" || $_SESSION['user'] == "ov_admin" ) {
  8.      header("Location: ../index.php?page=admin" );
  9.   }
  10.   else {
  11.      header("Location: ../index.php" );
  12.   }
  13. ?>


on va donc mettre les valeurs du formulaire dans les sessions, puis faire une connexion. pour finir on va faire une redirection si le user est admin.
 
problème: sur ma page d'index, j'ai toujours OV_USER d'affiché (voir point en gras). mais selon le echo dans la page de login, les sessions sont correctes juste avant la redirection.
 
si je bloque la mise des valeurs par défaut (connexion.php), mes sessions seront toujours vides!
 
voila, si vous avez une idée merci d'avance :jap:

mood
Publicité
Posté le 10-05-2004 à 16:03:26  profilanswer
 

n°721990
urd-sama
waste of space
Posté le 11-05-2004 à 15:13:37  profilanswer
 

j'ai également observé que lors de mon logout, je mets d'autres valeurs dans mes sessions. ces dernières ne sont pas changées.
 
en fait tous ces problèmes interviennent après une redirection Header xxx, serait-ce un problème de configuration de serveur?

n°721995
Profil sup​primé
Posté le 11-05-2004 à 15:22:45  answer
 

Code :
  1. <?php
  2.                  echo 'a'.$_SESSION['user'].'a'.$_SESSION['pass'].'a';
  3.                     ?>

:??:  
 
c'est quoi ces [g].
pasque le ton [g] est en dehors tu echo :D


Message édité par Profil supprimé le 11-05-2004 à 15:23:04
n°721996
urd-sama
waste of space
Posté le 11-05-2004 à 15:23:28  profilanswer
 

c'était pour mettre en forme sur le forum :D

n°721998
Profil sup​primé
Posté le 11-05-2004 à 15:23:45  answer
 

:lol: ok :)

n°722787
MrFredG
Posté le 12-05-2004 à 09:33:20  profilanswer
 

essaye un session_start(); en debut de ta page login.php pour propager tes variables de sessions. :)

n°722789
urd-sama
waste of space
Posté le 12-05-2004 à 09:36:21  profilanswer
 

oky je vais tester :jap:

n°722791
urd-sama
waste of space
Posté le 12-05-2004 à 09:39:05  profilanswer
 

excellent, ca a l'air de bien fonctionner!
comme tu l'as dit que j'ai mis dans le login et aussi dans le logout, il a l'air de les prendre cette fois!
merci énormément, j'étais trop dans la merde avec ce problème!

n°722796
MrFredG
Posté le 12-05-2004 à 09:43:17  profilanswer
 

a ton service

n°722800
urd-sama
waste of space
Posté le 12-05-2004 à 09:45:20  profilanswer
 

est-ce que tu as des explications plus précises sur ce phénomène?

mood
Publicité
Posté le 12-05-2004 à 09:45:20  profilanswer
 

n°722807
MrFredG
Posté le 12-05-2004 à 09:52:48  profilanswer
 

rien d'extraordinaire lorsque tu charges une nouvelles page la fonction session_start(); transmet tes variables de session a cette page (si la session existe) sinon elle créee une nouvelle session.
en fait cette fonction est mal nommée peut etre.
dans ton cas ta session creee dans index n 'etait donc tout simplement pas transmise à ta page login.php (et logout)

n°722808
urd-sama
waste of space
Posté le 12-05-2004 à 09:53:29  profilanswer
 

okay merci beaucoup, c'est bon à savoir ca :jap:
(jusqu'à maintenant je n'ai que de l'ASP qui gère les choses autrement)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Sessions qui disparaissent

 

Sujets relatifs
[Php] Config de ldapPHP - Variables de session et sécurité
[PHP] - Lien téléchargement -[php] Recherche dans un fichier doc
[PHP] While avec un stringPHP/MySQL et clef étrangère
[PHP] Pb simple : Comment savoir que mysql retourne une requete vide ?[PHP] Recherche dans un fichier
[PHP] Retrouver une date a partir du nombre de jours et de l annee[PHP] Session : cookie vs url
Plus de sujets relatifs à : [PHP] Sessions qui disparaissent


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR