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 :

Session et object [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut Session et object
    Bonjour

    J'ai un petit souci avec la mise en session d'un objet.

    Je crée un objet contenant un tableau.
    Je place cet objet en session
    Je change de page et je récupère mon objet dans la session.
    Tout le contenu de l'objet est bien présent, sauf son nom.

    Au début:
    object(Translator)#3 (8) {

    Quand je le récupère:
    object(__PHP_Incomplete_Class)#1

    Mais le tableau contenu et les propriétés sont bien présentes.

    Ais-je oublié quelque chose dans mon code, ou est-ce normal et faut-il oublier la mise en session d'objet ?

    Papy !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta classe doit être définie avant le session_start()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Qu'entends-tu par "définir" ?

    Ma classe est forcément définie avant le session_start puisque je crée un objet à partir de cette classe. Par contre, le code est dans un include_once. Ca peut venir de là ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Oui mais dans la page ou tu récupères l'objet en session est-ce que la classe est bien déclarée avant la session ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Code de ma première page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    include_once 'Translator.php';
    $translator = new Translator(true);
    $translator->SetDatabaseParameters("localhost", "traductions", "root", "admin");
    foreach ($translator->LanguageCodes as $key => $value) {
    	$translator->set_language($key);
    	echo sprintf("%s : %s %s<br/>", $value, $translator->GetString("Bonjour"), $translator->GetString("le monde"));
    }
    $translator->set_language("pol");
    $_SESSION["traductions"] = $translator;
    var_dump($_SESSION);
    Code de la page qui récupère l'objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include_once 'Translator.php';
    echo '<pre>';
    var_dump($_SESSION);
    est-ce que tu vois une erreur stp ?

    J'oubliais de préciser que j'ai mis le session_start en automatique dans la config du site

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essai sans le autostart.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Autre précision qui a peut-être son importance: le code php est dans une page html lors de la récupération de l'objet.

    J'ai modifié comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    session_start();
    $_SESSION["traductions"] = $translator;
    var_dump($_SESSION);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    include_once 'Translator.php';
    session_start();
    var_dump($_SESSION);
    $translator = $_SESSION["traductions"];
    session_commit();
    mais dès la première page, j'obtiens le message suivant:

    session_start() [function.session-start]: Cannot send session cache limiter - headers already sent ...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour cet erreur, réfère toi aux multiples sujets du forum (et même dans la faq) qui en parle.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pour cet erreur, réfère toi aux multiples sujets du forum (et même dans la faq) qui en parle.
    J'ai mis les include et le session_start en tout début de fichier avant le html et maintenant tout fonctionne.

    Un grand merci pour ton aide

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

Discussions similaires

  1. [SP-2007] WSS3.0 Session and object
    Par Trankill dans le forum SharePoint
    Réponses: 4
    Dernier message: 27/10/2010, 12h10
  2. PB session save(object)
    Par tentos dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/08/2008, 18h20
  3. [Cookies] <object data> et variable de session
    Par p.legal dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2007, 23h27
  4. Réponses: 40
    Dernier message: 13/05/2006, 00h04
  5. [Cookies] Session object destruction failed
    Par Paganoni dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2006, 09h38

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