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 :

Perte de session aléatoire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut Perte de session aléatoire
    Salut à tous,
    Je sais que le sujet à déja été abordé dans quelques topics, mais je n'ai pas trouvé de réponse qui convenait à mon cas, alors pour ne pas 'polluer' le topic des autres, je crées le mien ..

    Le problème est sensiblement le même :
    Je perds aléatoirement mes sessions, le problème c'est que je n'sais jamais quand ca va arriver c'est assez rare, et la plus part du temps ca arrive à mes utilisateurs, parfois très fréquemment.

    Le problème ne vient à priori pas du coté serveur car mon script a été testé sur plusieurs serveurs (2wamp et un apache sous fedora).

    Est ce que vous voyez dans cette portion de code quelque chose qui pourrait poser problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	session_name("xxx");
                    session_start();
    	if(time() - $_SESSION['timeout'] > 1800) // 1800 secondes = 30 min
    	{
    		session_destroy();
    		session_name("xxx");
    		session_start();
    	}
    	$_SESSION['timeout']=time();
    	if (!isset($_SESSION['logged_pleh']) or @$_SESSION['logged_pleh'] != "connecté")
    		die( '<script type="text/javascript">
    		window.location="index.php?ordre='.@$_GET['ordre'].'&page='.@$_GET['page'].'&comm='.@$_GET['comm'].'";
    		</script>');
    J'ai fait des test avec print_r($_SESSION) il semble que parfois la superglobale se vide d'une page à l'autre, pourtant le code est bien inclus dans chaque page de mon script, il n'y a aucun doute la dessus .... et bien evidemment la perte de session a lieu bien avant les 30 minutes du timeout

    J'espere que quelqu'un à déjà résolu ce genre de problème car je n'ai vu aucune réponse qui donnait une veritable solution dans d'autres posts

    Merci à vous

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut
    Dans la configuration de PHP est indiquée une durée d'expiration pour les sessions.
    Il se peut simplement que tes sessions expirent au bout de la durée spécifiée par le serveur si aucune page n'a été rechargée entre temps.
    Tu peux regarder du coté de session_cache_expire.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut
    Salut desolé j'été en congés ces 2 semaines, je me permet de remonter le topic

    Citation Envoyé par Rezouce Voir le message
    Il se peut simplement que tes sessions expirent au bout de la durée spécifiée par le serveur si aucune page n'a été rechargée entre temps.
    Tu peux regarder du coté de session_cache_expire.
    Le problème ne vient pas de la session.cache_expire est à 180 min, session.cookie_lifetime est à 0 (donc 'infini') et session.gc_maxlifetime est à 1440s.

    Le problème c'est que c'est vraiment aléatoire, des fois on se logge je fais 3 actions et la session saute. La plus part du temps ca marche bien, mais fréquemment, on se fait éjecter et je n'voies vraiment pas la raison ....

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut Session aléatoire
    Bonjour,

    Je rencontre exactement ce problème actuellement.

    La session est perdue aléatoirement, parfois elle passe correctement d'autres fois pas du tout, impossible de trouver la règle qui régit ce bug.

    L'utilisateur se log avec son mail et son mot de passe, il arrive sur la première page mais ne peut accéder aux autres pages car il rencontre la page d'erreur.

    Voici seule procédure réalisable stable quand on rencontre la page d'erreur que j'ai trouvé :

    Vous êtes sur la page d'erreur alors que vous souhaitiez visiter une page :

    Cliquez sur le bouton retour de votre navigateur.
    Puis appuyez sur la touche F5 de votre clavier.
    Acceptez de renvoyer les informations.
    Vous devriez pouvoir consulter toutes les pages.

    Idem les sessions côté serveur sont ok :
    session.cache_expire est à 180 min,
    session.cookie_lifetime est à 0 (donc 'infini')
    session.gc_maxlifetime est à 1440s.

    Le serveur n'est pas plein.
    Le serveur ne semble pas endommagé.

    La session écrite en php est correctement écrite. En théorie, puisqu'elle a fonctionné 4 ans.

    Quelqu'un aurait trouvé ou aurait une piste ?

    Merci à tous,
    Killian

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut
    Salut kilian,

    Je n'sais pas quel version de apache tu utilises, perso a l'epoque ou j'avais ces problemes, nous étions sur easyphp, depuis nous sommes passé sous wamp et ca fonctionne.
    Le session_cache_expire fonctionne désormais correctement, je pense à un problème dans easyphp mais je n'peux pas l'assurer à 100 %.
    Cependant avec les memes fichier de config, cela marche désormais sur wamp mais easyphp lui est dans les choux, je n'voies que ca qui pourrait en etre une des raisons.

    Cdt

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Je te remercie pour ta réponse, toute aide est la bienvenue car mon problème est carrément sur le serveur de prod.

    Voici la version d'Apache : Apache/2.2.3 (Debian) PHP/4.4.4-8+etch6

    Le code d'authentification est assez simple et ne semble pas poser de problème en lui même :

    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
    27
    28
    29
    30
    31
    32
     
    <?php
    session_start();
    $validation=0;
     
    if(isset($_POST['email']) && isset($_POST['motdepasse'])){
      $_SESSION['email'] = $_POST['email'];
      $_SESSION['motdepasse'] = $_POST['motdepasse'];
      $sql="select USER_ID,EMAIL,MOTDEPASSE from S_USER where EMAIL='".$_SESSION['email']."' and MOTDEPASSE='".AddSlashes($_SESSION['motdepasse'])."' and ACTIF=1";
      $result = mysql_query($sql,$db);
      if ($myrow = mysql_fetch_array($result))
      {
        $validation=1;
        $user_id=$myrow['USER_ID'];
        $_SESSION['user_id']=$myrow['USER_ID'];
      }
    } else {
      if(isset($_SESSION['email']) && isset($_SESSION['motdepasse']) && isset($_SESSION['user_id'])){
        $sql="select USER_ID,EMAIL,MOTDEPASSE from S_USER where EMAIL='".$_SESSION['email']."' and MOTDEPASSE='".AddSlashes($_SESSION['motdepasse'])."' and ACTIF=1";
        $result = mysql_query($sql,$db);
        if ($myrow = mysql_fetch_array($result))
        {
          $validation=1;
          $user_id=$myrow['USER_ID'];
        }
      }
    }
    if ($validation==0){
      echo "Message d'erreur";
      exit;
    }
    ?>

    Le problème que j'évoque apparait après une migration des fichiers sur un autre nom de domaine (extension .net => .com) mais sur le même serveur.

    Une redirection web du .net est effective vers le .com

    Voili voilou...

Discussions similaires

  1. [PHP 5.2] Perte immédiate de session aléatoire
    Par Dark Cid dans le forum Langage
    Réponses: 1
    Dernier message: 08/10/2010, 09h46
  2. Plantages et perte de session aléatoires
    Par sendoshi dans le forum Seam
    Réponses: 5
    Dernier message: 08/04/2009, 17h31
  3. Perte des variables de session aléatoire
    Par dnkz dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2008, 16h27
  4. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 09h32
  5. [VB.NET] Perte de session entre 2 projets
    Par TekP@f dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/05/2005, 09h12

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