SAlut a tou(te)s!
voila mon problème:
j'utilise un objet User dont le constructeur définit un attribut _db qui est lui même une instance de la classe PDO.
code dans User.class.phpcode dans ma page php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public function __construct($db) { $this->_db = $db; }mais après clic sur un lien href je perd mon objet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $user = new User($db); $user->setUserData($id_user);Et là c'est le drame pas d'accès à $user->droitAccesPartie(..) et pas de message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // test si l'utilisateur a le droit d'acces au lien f ($user->droitAccesPartie($pages[$i]["ks_ecran"])) { $template->assign_block_vars("un_lien", array( "ID" => $pages[$i]["ks_ecran"],"TITRE" => $pages[$i]["trad_nom_ecran"],"PAGE" => $pages[$i]["page_web"])); }
J'ai bien essayé de linéarisé $user mais c'est apparemment impossible de le faire avec un objet PDO?
Comment feriez vous?
1ère solution possible:
comme il n'y a qu'une page php dans mon application (inclusions, ...),
je serialize $user à la fin de la page,
je l'enregistre dans une var de session,
et quant je recharge ma page je test cette var de session,
si elle est definit alors je déserialize $user.
Pour pouvoir faire ça je dois passer $db en global et le retirer du constructeur de ma classe. ça marche.
Mais avant que je mette [résolu] sur mon post, je voulais essayer une méthode plus propre. Il parait qu'utiliser les global c'est pas bien.
Auriez vous des idées?
Partager