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 :

[Cookies] Problème de récupération de la session sur un autre script


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Par défaut [Cookies] Problème de récupération de la session sur un autre script
    Salut
    j'ai fais une vaingtaine de page, et la session marchait trés bien, mais là ca ne marche plus !
    je ne comprend pas pourquoi ! hier ca marchait
    dans l'index (page ou j'ai la template et que j'utilise comme cadre avec include pour les autres pages ) :
    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
    33
    34
    35
    36
    37
    @session_start();
    include("base/connect.php");
    if(isset($_POST['disconnect_me']))                 //on vient de l'index pour se                                       deconnecter
    {
    $_SESSION=array();
    session_destroy();
    }
     
    if(isset($_POST['login']))  // on vien de l'index pour se connecter
    {
      $tr=0;
      $l=$_POST['login'];
      $p=$_POST['password'];
      $r=mysql_query("select * from user where login='$l'");
      $re=mysql_fetch_row($r);
      if(strcmp($re[4],$p)==0)          // avec succés
        {
    	if($re[13]==1)
    	{
    	 $tr=1;
         @session_start();
         $l=session_id();
         session_register('identification');
         $_SESSION['identification']=1;
         session_register('user');
         $_SESSION['user']=$re[3];
         $_SESSION['type']=$re[5];
         $_SESSION['nom']=$re[1];
    	 $_SESSION['id_u']=$re[0];
    	 }
    	 else
    	 {
    	 $tr=5;
    	 }
     
        } 
    }
    puis on a le formulaire de connexion et de deconnexion
    la connexion s'etablie trés bien au debut mais dés le passage d'une page a l'autre, la session ne marche plus

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Tu ouvres bien ta session sur chaque page ? Tu n'as pas d'erreur ?

    Au lieu d'utiliser des fonctions dépréciées (session_register) utilise les super globales $_SESSION (surtout que c'est ce que tu fais juste après).

    Il y a un truc que je ne comprends pas quand tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    session_register('identification');
    $_SESSION['identification']=1;
    session_register('user');
    $_SESSION['user']=$re[3];
    Tes session_register ne servent à rien puisque juste après tu affectes la même variables avec $_SESSION ??

    Dernière chose : tu redémarres ta session dans le if alors que tu la démarres déjà au début de ton code.

    Essaie ceci :
    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();
    require_once 'base/connect.php';
    if(isset($_POST['disconnect_me'])) //on vient de l'index pour se deconnecter
    {
      $_SESSION=array();
      session_destroy();
    }
     
    if(isset($_POST['login']))  // on vien de l'index pour se connecter
    {
      $tr=0;
      $l=$_POST['login'];
      $p=$_POST['password'];
      $r=mysql_query("select * from user where login='$l'");
      $re=mysql_fetch_row($r);
      if(strcmp($re[4],$p)==0) // avec succés
      {
        if($re[13]==1)
        {
          $tr=1;
          $l=session_id();
          $_SESSION['identification']=1;
          $_SESSION['user']=$re[3];
          $_SESSION['type']=$re[5];
          $_SESSION['nom']=$re[1];
          $_SESSION['id_u']=$re[0];
         }
         else $tr=5;
      } 
    }
    ?>

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Par défaut !=
    Le probleme n'est pas dans l'identification
    elle se passe tres bien, mais pkutot quand je passe de page en page :
    j'ai fais l'identification dans l'index....
    puis j'ai un include"autrepage.php";
    dans l'autre page, je met le @session_start();
    puis quand je teste avec print_r($_SESSION) ca me donne Array()
    apres quand j'utilise $_SESSION['user'], comme erreur il me donne
    Undefined index: user in c:\program files\easyphp1-8\www\hahi\autrepage.php on line 5
    !!!!!
    merci

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Tu devrais peut-être vérifier qu'à la fin du code que tu nous as donné, $_SESSION existe vraiment et conteint quelque chose (en utilisant un print_r ou un var_dump).

    Personne n'aurait modifier php.ini entre temps ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Par défaut !=
    J'ai verifié avec print_r($_SESSION) et ca marche dans l'index
    mais même quand j'ai fais un lien de index vers index juste pour essayer, la session disparait !

    hier tout allais bien !
    pour ce qui est du php.ini, moi j'y ai pas touché , mais qu'est ce que je dois verifier dedans ?
    merci

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Ce n'est pas en faisant précéder session_start de @ que vous trouverez l'erreur : si la création/récupération des sessions est basée sur les cookies et que vous envoyez quoi que ce soit au client avant, le cookie ne sera pas créé et il ne vous sera donc pas possible de récupérer cette même session sur une autre page. De plus, session_register est mal utilisé et déprécié. Choses que trotters213 vous avez corrigé.

    Ce qu'il serait intéressant de savoir c'est si votre identifiant de session reste le même à chaque script (echo session_id() par exemple).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/01/2012, 17h32
  2. Réponses: 7
    Dernier message: 08/07/2011, 16h56
  3. Le problème de la durée des sessions sur le forum developpez.com
    Par Thomas_ats dans le forum Evolutions du club
    Réponses: 14
    Dernier message: 12/01/2009, 18h44
  4. [Cookies] Ouvrir une session sur un autre site
    Par eraim dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2006, 15h33
  5. Réponses: 2
    Dernier message: 25/04/2006, 17h08

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