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 des variables de sessions


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut Perte des variables de sessions
    Bonjour,

    J'ai un petit problème lorsque je passe du script login.php au script admin.php (je mets les deux script en dessous), en faite print_r($_SESSION) dans login.php me renvois bien le tableau $data, mais print_r($_SESSION) dans admin.php ne me renvoit rien du tout ... Je ne vois absolument pas pourquoi, dans les deux script la session est ouverte, et rien ne la ferme.

    Si quelqu'un à une idée, une suggestion, ou même un conseil, je suis preneur, merci d'avance .


    login.php
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php session_start(); ?>
    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    		<title>Login en cours</title>
    		<link href="style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <div id="block">
    <?php
     
     if(empty($_POST['log']) or empty($_POST['pass'])) {
     	echo ('<p>Login ou password incorect.</p><p><a href="index.php">Retour</a></p>');
     	echo ('<p>CODE 002</p>');
     	session_unset ();
     	session_destroy();
     	exit;
     }
     
     else {
    	include('../inc/opendbadmin.inc.php');
    	$query = 'SELECT * FROM user WHERE login="'.$_POST['log'].'";';
    	$res = sqlite_query($db,$query);
    	$data = sqlite_fetch_array($res);
    	sqlite_close($db);
    }
     
    if (empty($data)) {
    	echo ('<p>Login ou password incorect.</p><p><a href="index.php">Retour</a></p>');
    	echo ('<p>CODE 003</p>');
    	session_unset ();
     	session_destroy();
     	exit;
    }
     
    elseif ($_POST['pass'] != $data['password']) {
    	echo ('<p>Login ou password incorect.</p><p><a href="index.php">Retour</a></p>');
    	echo ('<p>CODE 004</p>');
    	session_unset ();
     	session_destroy();
     	exit;
    }
     
    else {
    $_SESSION = $data;
    echo ('
    <p>Vous etes identifié</p>
    <p><a href="admin.php">Acceder à l\'interface</a></p>');
    print_r($data);
    }
    ?>
    </div>
    </body>
    </html>


    admin.php
    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
    <?php session_start(); ?>
    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
           <title>Page d'administration</title>
           <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <div id="block">
    <?php
    if(isset($_SESSION['id'])) {
    	session_destroy();
    	echo('tricheur ! Code: 001');
    	exit;
    }
    else {
    	print_r($_SESSION);
    }
    ?>
    </div>
    </body>
    </html>
    Le code n'est pas commenté, et je m'en excuse, toutefois voila la structure de la table "user" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TABLE user (id INT(3), login VARCHAR(8), password VARCHAR(8), nom TINYTEXT)
    Merci d'avance du temps que vous voudriez bien me consacrer.

    Bastien.

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Dayom
    A remplacer par quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION["data"] = $data;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    Meme si data est déja un tableau ?

  4. #4
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Dayom
    Meme si data est déja un tableau ?
    Oué, même

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    Ca fonctionne, sauf que sur la page d'après je dois faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION = $_SESSION['data'];
    pour que les choses rentrent dans l'ordre ... Merci beaucoup !

    Au faite, pourquoi quand j'actualise la page il perd les variables de sessions ? :'( C'est normal ?

  6. #6
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Dayom
    Ca fonctionne, sauf que sur la page d'après je dois faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION = $_SESSION['data'];
    pour que les choses rentrent dans l'ordre ... Merci beaucoup !

    Au faite, pourquoi quand j'actualise la page il perd les variables de sessions ? :'( C'est normal ?
    N'affecte pas $_SESSION comme ça (sans les crochets) ! Les variables de session ne fonctionnent pas correctement avec les références (en français : gaffe aux tableaux)
    A la limite tu peux faire ça pour que ça marche comme tu voulais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($data as $key=>$val) {
      $_SESSION[$key] = $val;
    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    D'accord ... je dois avouer ne pas tout comprendre ... j'ai recopié le même script, a la lettre pres (CTRL A + CTRL C) dans une autre page (que j'ai appelé test.php), j'ai fait pointé login.php sur test.php, et ca fonctionne ...

    Quand le dieu de l'informatique n'est pas avec nous ...

  8. #8
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Problème résolu ?

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

Discussions similaires

  1. [MySQL] Perte des variables de session
    Par jcaspar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2010, 16h57
  2. Perte des variables de sessions
    Par Bizoo dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2010, 12h12
  3. Perte des variable de session au changement de page.
    Par [Xt-6] dans le forum Langage
    Réponses: 11
    Dernier message: 15/01/2009, 21h28
  4. Perte des variables de session aléatoire
    Par dnkz dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2008, 16h27
  5. Réponses: 5
    Dernier message: 01/05/2007, 14h22

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