IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable de session NULL ! Pourquoi ?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 204
    Points : 79
    Points
    79
    Par défaut Variable de session NULL ! Pourquoi ?
    Bonjour,
    j'ai un soucis au niveau de ma variable de session qui est à NULL à partir d'un moment, pourtant je suis toujours connecté.
    Si je suis en activité (appel de la fonction qui prends la variable de session, à partir d'une liste déroulante) dans une page il n'y a pas de problème.
    Mais lorsque je reste pendant un moment sur la page sans faire appel de la fonction grâce à la liste déroulante, alors là, la variable est à NULL
    En effet voilà un script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php 
      include("../inc/datejour_bil.php"); //-- dans ce fichier il y a bien session_start();
    ?>
    <?php
    $varCatInter = $_SESSION['NUMERO_VARIABLE'];
     
    ?>
     
    	<div class="row-fluid">	
    							<div class="span9">
    								<aside class="span12 txt_assid_resum"><br/><?=$resumPage;?></aside>
    							</div>
    							<div class="span3">								
    								<div class="btn-group"> <a class="btn btn-info dropdown-toggle" data-toggle="dropdown" href="#"> <?= $txtSelectAutdept;?> <span class="caret"></span> </a>
    									  <ul class="dropdown-menu">
    									  <?php										
    										$res=getDepartementRegion($varCatInter);//-- c'est ici ou $varCatInter=NULL après un temps sans activité et je ne comprend pas ??
    										while($lliste=$res->fetch()){										
    									  ?>
    									  <li><a href="../routeur/redirect_dept.php?T=<?= $lliste->num_dept; ?>"><?= $lliste->nom_dept; ?></a></li>
    										<?php }?>
    									 </ul>
    								</div>	
    							</div>
    						</div>
    Je crois que la variable de session est valable pendant que la session est ouverte ? Là je ne comprends pas pourquoi cette variable est NULL ?
    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 116
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 116
    Points : 8 262
    Points
    8 262
    Billets dans le blog
    17
    Par défaut
    C'est tout $_SESSION qui passe à null ou juste un de ces éléments ?

    Si tu perds tout $_SESSION après un certain temps d'inactivité il suffit daugmenter la valeur de session.cookie_lifetime, ou de la passer à 0

    https://www.php.net/manual/fr/sessio...ookie-lifetime
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 758
    Points : 2 995
    Points
    2 995
    Par défaut
    +1 avec Séb sur le constat : une session a une durée de vie et donc, il ne me paraît pas illogique qu'une fois le timeout ayant retenti, que le serveur web vide la session. Imagine une session avec ton login... Fort heureusement, le site web ne doit plus avoir une session en vie alors que tu n'as plus interagi avec la page web depuis xxx secondes.

    Rien ne t'empêche de voir si tu peux augmenter la session ou de stocker les valeurs dans un fichier /tmp si nécessaire (mais bof bof sur le plan de la sécurité).
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Il faudrait également vérifier ce qu'il se passe avec la variable de session $_SESSION['NUMERO_VARIABLE'].

    On ne voit pas le code d'assignation à cette variable, si ça se trouve, elle est réinitialisée.
    D'autant qu'aucune vérification n'est faite lors de son assignation à $varCatInter. Ca sous-entendrait qu'une valeur par défaut est définie pour éviter les erreurs

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/07/2019, 21h08
  2. Réponses: 4
    Dernier message: 21/09/2013, 18h06
  3. Variables de session irrécupérables ! Pourquoi ?
    Par jytest dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 28/11/2011, 13h35
  4. [Sécurité] variable de session à NULL, pourquoi?
    Par cladsam dans le forum Langage
    Réponses: 3
    Dernier message: 26/01/2006, 18h04
  5. variable de session
    Par divableue dans le forum ASP
    Réponses: 2
    Dernier message: 23/10/2003, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo