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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Par défaut objet en variable de Session
    Salut.

    Je passe un objet en variable de session.
    lorsque j'y accede ensuite, j'ai cette erreure:

    Notice: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition <b>garantie</b> of the object you are trying to operate on was loaded _before_ the session was started in ...... on line 13


    J'ai compris et vu en cherchant un peu qu'il fallait declarer les classes AVANT le session_start().
    J'ai bien mis mon require dans le bandeau haut de mes pages, avant toute ouverture de session, mais j'ai toujours l'erreur.
    Qqn peut me conseiller?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Par défaut
    Salut,

    Je me souviens avoir eu cette erreur un petit moment et il m'a fallu du temps pour me rendre compte que les déclarations des classes doivent être faites avant le session_start quand tu veux mettre des objets dans les sessions.
    Seulement, une fois mon require placé avant le session_start cela ne marchait toujours pas.
    Tout dépend le fonctionnement de ton application, mais je sais que j'ai pu remédier à ce problème en mettant require_once qui me garantissait que la déclaration était faite une fois, avant le session_start() et donc sans risque de trouver des déclarations après.
    Si ca peut t'aider....

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Par défaut
    Merci, je vai essayer.
    Ce que je trouve bizarre, c'est que j'avai également cette erreur:
    A session had already been started - ignoring session_start() in ../index.php on line 1

    Que j'ai contournée en mettant: @session_start()

    Sauf que quand je met un session_start au tout tout debut d'index.php, ba j'ai qd memme l'erreur. Du coup je voi pas comment je declare mes classes avant le session_start, si y'a TOUJOURS une session, mm au tout debut de index.php...

  4. #4
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Par défaut
    doit y avoir un truc avec le session.auto_start...

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Par défaut
    oui ou sur le temps d'ouverture par défaut de tes sessions ...
    A session had already been started - ignoring session_start() in ../index.php on line 1
    Mais il semble bien que tu ais une session encore ouverte qui traine par là ... Tu as un endroit ou tu reset la session sur ton appli ??
    Parce que même si tas des formulaires sur plusieurs pages et que tu utilises beaucoup les sessions, tu mets le require_once direct apres ton <? sur ta premiere page et hopt !! ca marche ! Enfin moi je le vois comme ca sur mon projet, maintenant je n'ai pas la science infuse et il se peut très bien que je te sois d'aucune utilité

    Bon courage

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A session had already been started - ignoring session_start() in ../index.php on line 1
    On peut voir cette fameuse ligne 1 ?
    Le "on line 1", c'est typiquement un problème d'encodage de ton fichier. Une histoire d'UTF-8 / ISO-machin-truc... Essaie de sauver dans un autre encodage.

    Citation Envoyé par Tyramon
    Que j'ai contournée en mettant: @session_start()

    Ne jamais, au grand jamais, masquer les erreurs !

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Par défaut
    Arf comme quoi on apprend des choses rien qu'à échanger !
    Le "on line 1", c'est typiquement un problème d'encodage de ton fichier. Une histoire d'UTF-8 / ISO-machin-truc... Essaie de sauver dans un autre encodage.
    Je ne savais absolument pas et je dirais même que je ne m'en serais jamais soucié qu'un problème d'encodage pouvait être là dessous...
    Du coup je vais reprendre mes pages pour vérifier mes encodages s'ils ne sont pas bidons !

    Merci Mr N. !

  8. #8
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Par défaut
    je sais bien que @session_start c'est pas tres propre, et meme plutot dangereux, mais mon DSi a décidé de faire comme ca et qu'il fallait avancer... alors bon...

    sinon la ligne 1 c'était ca:
    <?php session_start() ?>

    mais j'ai aussi essayé ca:
    <?session_start()?>
    ca:
    <?php
    session_start()
    ?> (qui me donne l'erreur ligne 2, evidement...)


    J'ai pensé session.auto_start de php.ini, mais il est pas activé.
    l'interet d'utiliser des objets est tres limité si je peux pas les passer en session.
    Enfin bon, je vai avancer sans mettre d'objets en session, ca va etre tout moche, mais j'ai un objectif a atteindre pour ce soir, et je doit avancer.

    en tout cas merci, je vai continuer a chercher la solution quand meme, en paralelle.

  9. #9
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Par défaut
    au fait

    require_once n'a pas solutionné le pb non plus

Discussions similaires

  1. Objet en variable de session
    Par r83 dans le forum Langage
    Réponses: 8
    Dernier message: 09/01/2009, 08h57
  2. variable de session dans un objet
    Par ben53 dans le forum Langage
    Réponses: 4
    Dernier message: 24/01/2007, 17h51
  3. Mettre un objet dans une variable de session
    Par dondano dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2006, 22h07
  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