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 variable de session


Sujet :

Langage PHP

  1. #1
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut Objet en variable de session
    Bonjour,

    pas spécialiste de l'objet en PHP. J'essaie de passer un objet d'une classe en variable de session.
    Quand j'essaie de récupérer cet objet dans une autre page, je n'accède plus aux méthodes publiques. Visiblement il considère la variable comme non-objet. Et pourtant quand je teste le type, il me dit Object .....
    Y
    j'ai essayé de caster comme en C, mais visiblement ça ne marche pas.
    Merci pour les idées...
    Bonne journée

  2. #2
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    As tu fais un include de la class dans la seconde page ?

    Gillou

  3. #3
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut
    Oui, j'ai fait un include.
    Merci

  4. #4
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Peux tu nous mettre le code de la page ou tu enregitres la session et celui ou tu veux la réstituer.

    Normalement, il n'y a rien de particulier à faire.

    Gillou.

  5. #5
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut
    Voici le code, la page s'appelle elle même, elle crée la variable de session au premier appel

    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
    ?php 
    include ("classes.php");
    session_start();
    echo "nb var : ". count($_SESSION);
     
    echo "début";
    if (!isset($_SESSION["S_EMPLOYES"]))
    {
    	echo "1ere fois ";
    	$MesEmployes=new Employes("benoit","benoit");
    	$curseur=0;
    	$_SESSION["S_EMPLOYES"]=$MesEmployes;
    }
    else 
     
    	$test=$_SESSION["S_EMPLOYES"];
    	$MesEmployes=$test->GetLesEmployes();
    	echo "mesemployes" . $MesEmployes->GetUnEmploye(0)->GetNomemp();
    ça plante sur le echo.

    nb var : 1début
    Fatal error: Call to a member function GetUnEmploye() on a non-object in F:\objet\index.php on line 18
    Merci

  6. #6
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Pour s'assurer qu'il n'y a pas d'erreur dans les methodes ou dans les class, peux tu faire ça :

    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
     
    ?php 
    include ("classes.php");
    session_start();
    echo "nb var : ". count($_SESSION);
     
    echo "début";
    if (!isset($_SESSION["S_EMPLOYES"])) {
      echo "1ere fois ";
      $MesEmployes=new Employes("benoit","benoit");
      $curseur=0;
      $_SESSION["S_EMPLOYES"]= "test_session";
    } else {
      $test=$_SESSION["S_EMPLOYES"];
      echo $test;
    }

    et :
    - n'oublie pas les acolades autour des if et des else
    - n'oublie pas les balises [C O D E] et [/C O D E] quand tu veux nous montrer du code

    question : tu veux que la session S_EMPLOYES soit un tableau avec des objets Employes ?

    Gillou

  7. #7
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut
    Je crois que le premier test isset n'est pas bon, je viens de relancer le serveur apache, donc tuer la session, et je m'aperçois qu'au premier appel, je ne passe pas dans le test de création de la variable de sesion. Pa rcontre il me dit que le tavbleau $_SESSION contient une valeur !
    Je teste ...
    Merci

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    Je pense que le probleme vient du fait que tu n'as pas serializé ton objet, avant de le mettre dans ta session.. et desserializé, quand tu le recupere.. et la ca devrait passer

  9. #9
    r83
    r83 est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Par défaut
    C'est bon, tout fonctionne bien, j'ai sérializé. J'ai perdu du temps en raison de la ré-initialisation des variables de session que je ne faisais pas bien. J'ai donc en phase de test systématiquement supprimé la variable de session. Une fois au point, j'ai continué mes tests. Merci pour tes conseils, je vais maintenant introduire de l'ajax dans mon code.
    Bonne journée

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

Discussions similaires

  1. variable de session dans un objet
    Par ben53 dans le forum Langage
    Réponses: 4
    Dernier message: 24/01/2007, 17h51
  2. Mettre un objet dans une variable de session
    Par dondano dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2006, 22h07
  3. objet en variable de Session
    Par Tyramon dans le forum Langage
    Réponses: 16
    Dernier message: 10/11/2006, 14h34
  4. Réponses: 19
    Dernier message: 02/02/2006, 23h30

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