[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Dolibarr-dev] Bug $user->getrights('')
From: |
Yannick Warnier |
Subject: |
Re: [Dolibarr-dev] Bug $user->getrights('') |
Date: |
Tue, 12 Dec 2006 17:53:43 +0000 |
Le mardi 12 décembre 2006 à 18:18 +0100, Eldy a écrit :
> > Le mardi 12 décembre 2006 à 11:56 +0100, Eldy a écrit :
> >> > Salut,
> >> >
> >> > Avec la dernière upgrade à partir du CVS, j'ai un bug qui m'empêche
> >> > d'aller plus loin que la page d'accueil de Dolibarr:
> >> >
> >> > <b>Fatal error</b>: Unknown(): The script tried to execute a method
> >> or
> >> > access a property of an incomplete object. Please ensure that the
> >> class
> >> > definition user of the object you are trying to operate on was loaded
> >> > _before_ the session was started in
> >> > <b>/var/www/dolitest/htdocs/includes/menus/barre_top/eldy_backoffice.php</b>
> >> > on line <b>72</b><br />
> >> >
> >> > Je le poste ici parce que j'ai besoin d'un coup de main actif, pas
> >> juste
> >> > d'une résolution. J'aimerais bien le résoudre moi-même mais j'ai un
> >> > problème évident, c'est que je ne sais pas ce qui a changé
> >> dernièrement
> >> > dans les scripts en rapport avec la procédure de login.
> >> >
> >> > Quoi qu'il en soit, la ligne 72 de eldy_backoffice.php contient
> >> > $user->getrights(''); qui semble avoir un problème de définition de la
> >> > variable $user.
> >> >
> >> > Or si on reprend le processus dans l'ordre chronologique, index.php
> >> > charge pre.inc.php qui charge main.inc.php qui charge master.inc.php.
> >> >
> >> > main.inc.php fait l'authentification, et utilise $user sans problème.
> >> > Ensuite, la contrôle est renvoyé à pre.inc.php qui, lui aussi, utilise
> >> > $user sans problème puis renvoie le contrôle à index.php.
> >> >
> >> > index.php appelle llxHeader() (défini dans pre.inc.php) qui appelle
> >> > top_menu() (défini dans main.inc.php). C'est top_menu() qui appelle la
> >> > méthode showmenu() (ligne 486) définie dans eldy_backoffice.php et qui
> >> > casse tout parce que $user semble ne plus être défini.
> >> >
> >> > Pourtant, à chaque niveau on appelle global $user;
> >> >
> >> > C'est bien là mon problème. Si quelqu'un a un tuyau à me filer, je
> >> suis
> >> > toute ouïe.
> >> >
> >> > Il s'agit donc d'une version de Dolibarr 2.1 post-beta mise-à-jour
> >> avec
> >> > une version CVS d'aujourd'hui, sans rien d'exceptionnel.
> >> >
> >> > Yannick
> >> >
> >>
> >> Peux-tu vide le cache de ton navigateur et effacer tout tes cookies.
> >> Si ca ne va pas mieux, quelle version de php utilise-tu ?
> >
> > OK, j'ai oublié de préciser ça mais je l'ai déjà testé. En fait on
> > dirait que le problème n'apparaît qu'à partir du moment où le login
> > vient de la session.
> > Quand je me logge, je vois la première page. Dès que j'essaie d'accéder
> > à la suivante, ça foire.
> > En fait tu peux essayer, sur https://dolitest.beeznest.net avec
> > demo1/demo1.
> > Quand tu nettoies la session, tu est déloggé et tout refonctionne
> > jusqu'à la deuxième page.
> >
> > Yannick
>
> Essaie ceci:
>
> Dans le fichier main.inc.php
>
> La ou tu as l'instruction
>
> $_SESSION["dol_user"]=$user;
>
> tu ajoutes en dessous
>
> $_SESSION["dol_login"]=$user->login;
>
>
> et la ou tu as
>
> $user=$_SESSION["dol_user"];
>
> tu remplace par
>
> $login=$_SESSION["dol_login"];
> $user->fetch($login);
Oui, ça ça fonctionne bien.
Ce qui signifie...?
Yannick