|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 68 ![]() |
Bonjour,
j'ai une question qui me trotte dans la tête et que je n'arrive pas à réaliser. Est-il possible de mettre dans ma classe Membre.class.php ma session_destroy dans une fonction deco(), par exemple. Et de pouvoir appeler cette fonction lorsque je clique sur mon lien Déconnexion ? Si quelqu'un pouvait me mettre sur la voie Merci et bonne journée |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 708 ![]() |
Salut
Vu que tu fais de la POO, n'aurais tu pas créer une classe Session pour justement gérer les sessions ? Si tel est le cas, (à titre perso), j'aurais plus vu que ce soit à cette classe Session de se charger de détruire la session. Fais bien le point la dessus, car on peut très bien un jour dans un autre contexte vouloir détruire la session, et ça, sans pour autant qu'une personne se soit identifiée comme membre. Si tel est le cas, on se retrouverait avec 2 codes effectuant la même chose, ou pire, créer une instance Membre pour appeler la méthode Membre::deco(). Disons que l'ouverture d'une session peu très bien ne pas être liée à un membre. Faut voir. Toujours à titre perso, la gestion des session est théoriquement un mécanisme à part, non dépendant de ce quelle contient. Regarde la doc, et particulièrement la fonction : session_set_save_handler Doc Php : http://fr2.php.net/manual/fr/functio...ve-handler.php
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
En effet, il n'est pas de la responsabilité de la classe Membre de manager la session. C'est une classe de service qui doit s'en charger et offrir aux autres classes un mécanisme cohérent d'ouverture, fermeture et définition de save handlers.
Un exemple simple pas bien compliqué: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 68 ![]() |
Je commence juste la POO avec php, et la tu viens de m'embrouiller en 2 secondes ^^
![]() Si je crée une class session.class.php, dedans je n'aurais que 2 méthodes ? session_start, session_destroy, vu que je n'utilise que ca ? Je vais étudier la doc que tu m'a donné --------------- Waa je vais étudier tout ca c'est vrai que définir une class à part me parrait plus cohérent |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 708 ![]() |
Citation:
Lis bien la doc, qui certes sont de simples fonctions, mais le principe de base est là. Il faudra au minimum reprendre le même principe, car à juste titre, en définissant session_set_save_handler(), on dit qu'on ne souhaite plus une gestion par défaut, mais que Php fasse référence à notre propre mécanisme (soit les fonctions comme la doc ou notre classe et ses méthodes). Code :
bool session_set_save_handler ( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc ) Plus les autres, comme une méthode Session::start(pour session_start), voir Session::id(pour session_id), Session::name(pour session_name), etc ... Epluche un peu le Net en recherchant des tutos sur la gestion des sessions personnalisée, il y en a, ça sera autant de source d'inspiration. Faut quand même bien comprendre comment fonctionne les sessions pour faire quelque chose de personnalisée, car une bonne part de la sécurité reposera la dessus.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com