Déconnection massive & test [Session] - PHP - Programmation
Marsh Posté le 28-01-2003 à 23:44:35
deconnexion massive, moi je pense que non, mais je peuix me tromper
envoie ladresse du site en MP avec si possible le login/pass de test
Marsh Posté le 28-01-2003 à 23:48:05
Bah je peux mettre l'adresse ici ^^
http://www.zeldaboss.firstream.net/site/membres/
test:test
Marsh Posté le 29-01-2003 à 01:16:08
déconnexion massive... pq pas
soit tu deletes les fichiers de session
unlink($HTTP_COOKIE_VARS['PHPSESS']); (ou en GET dans l'url)
soit tu fais un delete dans la bd si tu gères les sessions par bd.
tu te fais un beau formulaire avec les gens online, tu coches/décoches la déconnexion de chacun, tu valides, et c'est parti
(j'aime bien cette idée )
Marsh Posté le 29-01-2003 à 10:22:20
HMm, pas mal ^^, justement, comment je fais pour savoir qui est connecté sur le site ?
Citation : je peux juste te dire un truc : |
Merchii ^^
Marsh Posté le 29-01-2003 à 11:00:43
Zelda-Boss a écrit : HMm, pas mal ^^, justement, comment je fais pour savoir qui est connecté sur le site ? |
comment fais tu pour la gestion des membres (login/logout) ?
par session et/ou par cookie et/ou enregistrement dans bd ?
en fonction de ta méthode, tu peux modifer l'existant pour savoir qui est en ligne actuellement
Marsh Posté le 29-01-2003 à 12:08:12
Par session, j'utilise session_start(); et session_register();
Marsh Posté le 29-01-2003 à 13:09:00
c'est ton serveur ?
si oui, tu peux toujours lire les fichiers de session se trouvant dans /tmp.
à partir de là, tu peux les deleter (unlink) comme je disais dans mon premier post. pour cela chaque fichier de session dois contenir le login du connecté ou son ip et tu dois lire chaque fichier. si le login ou l'ip désirée est trouvée dans ce fichier, tu le delete.
si ce n'est pas sur ton serveur, tu peux suprimer le cookie (de session) de l'utilisateur. Tu enregistres dans une table les sessions que tu veux supprimer
A chaque demande de page, tu vérifies si l'utilisateur se trouve dans la liste à supprimer (checkuser($session) par ex). Si oui tu envoies un cookie avec une valeur de session vide (ou un session_destroy(), c'est sans doute mieux) et tu reload la page (header("location:..." )).
Il recevra une nouvelle session qui ne contient plus son login.
Marsh Posté le 29-01-2003 à 13:35:08
Bon, alors disons que je veux faire un compteur de connecté. Je devrais faire une table qui contiendra le pseudo du gars ($mb_login). Bon, mettons que dans la table, les pseudos A, B et C sont enregistrés, ca veut dire que les utilisateurs A, B et C sont connectés. Maint'nant, comment faire pour les déconnecter TOUS ?
Marsh Posté le 29-01-2003 à 14:05:51
donc tu as une session, tu l'enregistres/update dans la table des connectés avec l'id de session, le login, l'id du user, ... dans la table des connectés.
tu ne dois plus avoir de variable de session (plus de session_register('login').
pour les supprimer : delete from table_conectes where login='$login1' or id='$login2'...;
pour identifier chaque user :
select * from table_connectes where id='$sess_id'
ps : tu vas ralentir l'ensemble du site web
utiliser les variables de sessions est bcp plus rapide que de faire une query sur une table pour voir si l'utilisateur est enregistré et qui il est....
Marsh Posté le 29-01-2003 à 18:28:22
Houla, c'est vachement compliqué pour faire une deconnection massive apparement ^^. Et pis c'est clair que je vais ralentir tout le site s'il doit faire une verif à chaque fois ^^. Je crois que je vais devoir me passer de cette option d'admin ^^.
Marsh Posté le 29-01-2003 à 19:37:17
3-4 requetes par pages visitées
select from online
update online OU insert into online
delete from online .. where temps de presence terminé
select count() from online => NB connecté
deconnection massive : delete from online;
**
edit, je mettrais plutot un indicateur "adeconnecter" a 1, quand il visite une page, je vois indicateur a 1, je lance le logout (ferme session-efface la ligne ds online)
donc update online set adeconnecter=1
**
Marsh Posté le 29-01-2003 à 19:50:37
C'est bien ce que je disais, je vais me passer de cette option d'admin ^^
chacal_one333 a écrit : DROP TABLE |
Marsh Posté le 29-01-2003 à 19:57:31
ReplyMarsh Posté le 29-01-2003 à 20:40:09
Oué, donc ca a l'air vachement compliqué (ca fait chier, y'a pas une fonction du genre session_destroy_all(variable); ca serait tellement plus simple ^^)
Donc si quelqu'un veut encore tester l'espace membre => www.zeldaboss.firstream.net/site/membres (login:test, pass:test)
Marsh Posté le 29-01-2003 à 21:15:31
beleg a écrit : |
là certains petits malins font un rand() pour supprimer les enreg périmés de la table 1 x sur 10 par ex.
moi je delete que qd il y en a un qui se connecte (login).
Marsh Posté le 30-01-2003 à 14:44:38
Zelda-Boss a écrit : Oué, donc ca a l'air vachement compliqué (ca fait chier, y'a pas une fonction du genre session_destroy_all(variable); ca serait tellement plus simple ^^) |
non, mais quel en serait l'intérêt ?
de toute façon les users ne s'en rendrait compte que lors du chargement de la prochaine page.
donc comme je le disais, un stockage des users à déconnecter et une query qui check s'il faut ou pas déconnecter le user au chargement de chaque page.
si tu veux pas faire de query tu peux aussi créer un fichier (avec extension .php pour pas qu'il soit lisible!!!) qui contient les sessions à supprimer.
tu check si le fichier existe
- si oui, tu le lis et déconnectes le user s'il est dedans(session_destroy()) et tu le retires du fichier. si le fichier est vide, tu le supprimes.
- si non, tu ne fait rien de plus.
Marsh Posté le 28-01-2003 à 19:28:59
Voila, genre j'ai trois membres de connectés sur mon site, est-ce qu'il y a un moyen de deconnecter ces trois membres en même tps ?
Aussi, j'ai créé un espace membre, je ne sais pas s'il y a des bugs (en principe non), pourriez vous le tester voir si quelque chose ne va pas, et si jamais vous trouvez des failles (genre trouver le pass du compte admin, etc..), me les communiquer (par MP si poss ^^)
Merci a vous