Hello,
C'est peut être "ta manière de faire" qui n'est pas compatatible avec PHP 7... est-ce que tu a des messages d'erreurs (NOTICE, WARNING, ou autre...) ?
Bonjour,
j'ai un problème depuis la migration de mon site de PHP5 > PHP7, j'ai une fonction afin de gérer les droits d'utilisateurs sur l'ensemble du site.
exemple :
Je récupère l'ensemble des droits via une requête SQL :
$data =
| module | perms | subperms |
societe > edit
societe > view
projets > view > allprojets
Et ensuite je créer un Object comme ceci avec toutes les règles à false pour commencer, plus tard j'exécute une requête avec les droits de chaque utilisateur et je modifie par true si nécessaire :
Mais à ce moment, sous PHP7 j'ai un problème. lorsque $r['module'] change de société à projets, le code if(!isset($r['perms'])){} pense que $this->rights->projets existe déjà et du coup ne pas créer pas $this->rights->$r['module'] = new stdClass(); ce qui pose problème pour la suite du code.
Sous PHP5 tout était parfait, mais lors de mon passage sous PHP7 ce code ne fonctionne plus :)
Pouvez-vous m'éclairer sur ce problème, cela fait plusieurs jours que je suis dessus... ?
Merci.
Hello,
C'est peut être "ta manière de faire" qui n'est pas compatatible avec PHP 7... est-ce que tu a des messages d'erreurs (NOTICE, WARNING, ou autre...) ?
Désolé j'ai complètement "planné"... je me suis gourré de sujet. Ce que j'ai proposé n'a rien à voir avec ton problème...
Bonjour,
Merci pour ton retour,
le message d'erreur est le suivant : Warning: Attempt to modify property 'Array' of non-object in [...]
Dans ton code, tu parle de la partie $xml ?
Désolé j'ai complètement "planné"... je me suis gourré de sujet. Ce que j'ai proposé n'a rien à voir avec ton problème...
Donc pour moi ton message d'erreur est assez concret, tu essaie de modifier un Array dans un objet qui n'en est pas un.
A ta place, je partirais plutôt sur cette base là :
Je te laisse ajouter les infos nécessaires.
à suivre ...
Salut,
Merci pour ton retour, malheureusement ta proposition m'obligeait à remplacer mon object en Array.
J'avais trop de modifications à faire sur l'ensemble du site, trop compliqué....
Je viens de trouver une solution qui fonctionne correctement, juste avec des {} ???
$this->rights->{$r['module']}->{$r['perms']}
au lieu de
$this->rights->$r['module']->$r['perms']
Bon, j'ai plus de problèmes de ce côté, heureux que ce soit résolu.
Merci pour ton aide en tout cas, c'est grâce à toi que j'ai trouvé :)