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 :

Objet en session


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 66
    Points : 37
    Points
    37
    Par défaut Objet en session
    Bonjours à tous,

    Je suis actuellement en train de réaliser un site pour une entreprise et il y a un petit probleme sur lequel que je n'arrive pas à résoudre

    Déja, voila mon code:
    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
    <?php 
    /* Pour le calcul du temps d'éxecution de la page */
    $temps_debut = microtime(true);
     
    require_once('../includes/config.inc.php5');
    require_once('../includes/fonctions.inc.php5');
     
    session_start();
     
    /* Connexion à la bdd avec les identifiants contenus dans config.php */
    $bdd  = new mysql($sql['host'],
                      $sql['user'],
                      $sql['pwd'],
                      $sql['db'] );
     
    if( !empty($_POST['pseudo']) && !empty($_POST['pwd']) )
    {
        /* mises en session de l'objet user */
        $_SESSION['user'] = new user($_POST['pseudo'], $_POST['pwd']);
     
        /* connexion de l'utilisateur */
        $_SESSION['user']->login($bdd);
    }
     
    /* Si l'utilisateur n'est pas loggué, il est redirigé à la page d'authentification */
    if( !$_SESSION['user']->loggue )
    {
        $_SESSION['user']->loggue = FALSE;
            session_unset();
        /* utilisation de l'URL absolue pour la redirection vers la page d'authentification */
        header("Location: http://" . $_SERVER['HTTP_HOST']
            . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')
            . "/index.php5?msg=1");
    }
    ...
    ...
    ?>
    Ceci est le code de la page d'acceuil qui se trouve juste apres la page d'authentification (d'ou les variables $_POST qui sont nvoyés par la pages d'avant)

    Les variables $_POST['pseudo'] et $_POST['pwd'] (si elles ne sont pas vides) sont envoyés à la méthode user (qui est egalement le constructeur de la class user, cette méthode met l'attribut loggue à TRUE si l'identification fonctionne et à FALSE dans le cas contraire

    Seulement l'objet est mis en session comme vous pouvez le voir avec cette ligne:
    $_SESSION['user'] = new user($_POST['pseudo'], $_POST['pwd']);
    Je devrais donc normalement avoir acces à tous les attributs dans toutes les pages qui contiennes des sessions pousque l'objet est contenu dans $_SESSION['user']

    Seulement l'attribut pseudo ($_SESSION['user']->pseudo (cet attribu est rempli automatiquement avec le contructeur de la class)) ne passe pas entre les pages, par exemple lorsque j'arive sur cette page elle contient 'admin' et quand j'actualise elle est vide !

    J'ai essayé beaucoup de choses et je ne voit vraiment pas pourquoi $_SESSION['user']->pseudo ne passe pas :/

    Si quelqu'un pouvais m'aider
    Merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Points : 61
    Points
    61
    Par défaut
    Je vais peut-être dire une connerie mais es-tu sûr qu'on puisse mettre des Objets dans les sessions?

    A priori (et sans recherche préalable) je dirais qu'il faut que ton objet soit "serializable". Une fois que c'est le cas, avec de la chance PHP le comprend tout seul, avec moins de chance il faut s'occuper soi-même de la reconstruction de l'objet.

    Il ne faut pas oublier qu'une session est un fichier txt stocké sur le serveur.

    (J'espère ne pas avoir dit n'importe quoi )

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    J'ai tiré ca de la FAQ PHP du site: http://php.developpez.com/faq/?page=...ons_sauvegarde

    il y a cet exemple la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    require("../common/visitor.class.php");
    session_start() ;
    $_SESSION["myVisitor"] = new Visitor();
    ...
    ?>

    EDIT : C'est bon j'ai trouvé, je supprimais l'attribut dans le destructeur de la class user, quel con de pas y avoir pensé avant... Merci quand meme pour votre aide

  4. #4
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Points : 61
    Points
    61
    Par défaut
    exact, est-ce que tu inclues bien le fichier qui définit ta classe user (genre user.class.php) avant d'essayer d'accéder à ton objet user qui est en session?

    EDIT: Ah c'est reglé

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

Discussions similaires

  1. [POO] Solution d'objet en session partagé. Bon ou pas bon ?
    Par berceker united dans le forum Langage
    Réponses: 20
    Dernier message: 10/07/2008, 10h49
  2. [POO] Stockage de référence objet en session
    Par starn2000 dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2006, 16h35
  3. problème pour reattacher un objet à une session
    Par K-Kaï dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/07/2006, 16h16
  4. Objet en session
    Par maximenet dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2006, 17h51
  5. Réponses: 3
    Dernier message: 30/09/2005, 23h48

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