Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2150 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [question] Les Sessions oui mais....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[question] Les Sessions oui mais....

n°1333640
hyptnos
GT : Gui iom
Posté le 28-03-2006 à 13:58:27  profilanswer
 

Hello tout le monde.
 
Alors voila après avoir galerer pas mal avec les cookies entre IE et Firefox on ma conseiller (ici) de passer a un systeme de sessions. Chose que j'ai fait avec enregistrement dans la BDD. De plus j'ai mis un systeme de gestion de la session en disant que si le time() est supérieur a X seconde (900 pour 15 minutes) alors ont fait un Delete de l'enregistrement dans la BDD et un session destroy.
 
Tout fonctionne bien il demande de ce réidentifier au bout de x seconde d'inactivité. Seulement en cas de fermeture du navigateur comment le DELETE FROM et SESSION DESTROY ne sera pas réalisé puisque l'internaute n'aura pas cliquer sur un lien du site.
 
Y a t'il un moyen coté serveur en plus afin de supprimer l'enregistrement de la BDD après X secondes ????
 
JE sais c'est une question qui revient souvent et c'est pourquoi j'ai appliqué ce system de destruction de session mais bon la je suis un peu coincé quand meme il doit bien y avoir un moyen
 
MErci d'avance

mood
Publicité
Posté le 28-03-2006 à 13:58:27  profilanswer
 

n°1333657
Djebel1
Nul professionnel
Posté le 28-03-2006 à 14:10:38  profilanswer
 

si l'internaute ferme son navigateur, tu n'en sauras effectivement rien.
 
Mais je ne comprends pas trop ton problème, puisque tu te bases sur le temps d'inactivité, et non sur un lien pour détruire ta session.
 
Mais au cas où j'aurai bien compris la question : dans ta base, tu stockes le timestamp de dernière activité de ton utiisateur (comme tu le fais déjà). Quand tu rajoutes ou détruit une session, tu détruis en prime toutes les sessions qui ont un temps de dernière activité trop ancien (et pas seulement celle de l'utilisateur qui a fait appelé la page).

n°1333741
hyptnos
GT : Gui iom
Posté le 28-03-2006 à 15:23:19  profilanswer
 

Oui en autre cela pourrait resoudre le problème. Mais cela reste un peu barbare non?
 
En fait c'est peut ete moi qui à mal fait le truc. J'ai crer un fichier PHP que j'ai appeler func_controle_session
dedans j'ai dit si la session existe alors on recupére le time enregistrer dans la table session (lors de la connection)  
si le time est supérier a time limite (time limite time derniere time actuel + seconde) alors on detruit la session et on detruit l'enregistrement en bdd.
Si le time est inférieur au time limite alors on met à jour la valeur du time en bdd.
 
Donc forcement pour que ce bout de code soit executer il faut que l'internaute clique sur une page.
Donc forcement si il en clique pas et qu'il ferme son navigateur je suis un peu couillonné.
De plus c'est une petit site, un site de petite envergure  en gros afin de mettre en pratique ce que je connais (je m'autoforme quoi) et donc il n'y aura pas grand monde dessus car il me servira juste moi , famille et amis donc vraiment pas grand chose quoi
 
donc il pourra se passer 2 , 3 jour , une semaine peut être avant quelqu'un d'autre se connecte.
 
N'y à t'il pas un moyen coté serveur de le faire?
 
J'avais penser plus a une tache planifier  qui se lancerai a intervalle regulier et qui detruirai les session obsolete. Mais je sais pas comment faire cela  
non pas créer la tache planifier mais je lancerai quoi?
 
Enfin peut etre que je m'y suis mal prit depuis le debut

n°1333798
Djebel1
Nul professionnel
Posté le 28-03-2006 à 16:26:14  profilanswer
 

Donc ton système est très bien, tu dois juste rajouter un truc (même deux d'après tes besoins)
 
- tu rajoutes du code dans ta fonction func_controle_session, qui aura pour but de détruire toute session inactive depuis x temps. Non ce n'est pas barbare, c'est fait partout comme ça.
 
- Pour la tache planifiée,  tu fais juste une page PHP qui fait le ménage des sessions trop vieilles. Ensuite tu lances une tache planifiée qui lance ton navigateur internet sur cette page.


Message édité par Djebel1 le 28-03-2006 à 16:32:56
n°1333854
smaragdus
whores, drugs & J.S. Bach
Posté le 28-03-2006 à 17:12:23  profilanswer
 

hyptnos a écrit :


JE sais c'est une question qui revient souvent et c'est pourquoi j'ai appliqué ce system de destruction de session mais bon la je suis un peu coincé quand meme il doit bien y avoir un moyen


 
Il suffit de placer ton delete de session dans le garbage collecting defini par la fonction session_set_save_handler()

Message cité 1 fois
Message édité par smaragdus le 28-03-2006 à 17:36:25
n°1333892
hyptnos
GT : Gui iom
Posté le 28-03-2006 à 17:37:26  profilanswer
 

smaragdus a écrit :

Il suffit de placer ton delete de session dans le garbage collecting defini par la fonction session_set_save_handler()


 
 
OU la c'est nouveau pour moi ca
peux tu etres plus explicite s'il te plait
 
Ou je trouve cela et comment je met en place ?
 
Merci d'avance

n°1333896
smaragdus
whores, drugs & J.S. Bach
Posté le 28-03-2006 à 17:39:15  profilanswer
 

hyptnos a écrit :

OU la c'est nouveau pour moi ca
peux tu etres plus explicite s'il te plait
 
Ou je trouve cela et comment je met en place ?
 
Merci d'avance


 
Cette fonction sert à remplacer les mecanismes de sauvegarde de session comme tu viens de le faire. Tu l'as forcement utilisé.


Message édité par smaragdus le 28-03-2006 à 18:01:41
n°1333927
Djebel1
Nul professionnel
Posté le 28-03-2006 à 18:06:10  profilanswer
 

non, a mon avis il stock juste l'ID de session dans sa base, je pense pas qu'il ait utilisé session_set_save_handler()

n°1333935
hyptnos
GT : Gui iom
Posté le 28-03-2006 à 18:18:26  profilanswer
 

cela reste tres obscure
Vais chercher sur le net ce que peux trouver sur le sujet
 
edit : Oui oui je stock en bdd juste l'id de session comme le dis Djebel1


Message édité par hyptnos le 28-03-2006 à 18:19:45
n°1333963
smaragdus
whores, drugs & J.S. Bach
Posté le 28-03-2006 à 18:47:50  profilanswer
 

A quoi te sert de stocker l'ID de session dans la DB ? La durée de vie des sessions est parametrable.

mood
Publicité
Posté le 28-03-2006 à 18:47:50  profilanswer
 

n°1333969
hyptnos
GT : Gui iom
Posté le 28-03-2006 à 18:52:12  profilanswer
 

BAs je ne le savais pas mais cela me permet justement de pouvoir estimé le nombre de personne connecter simultanément et ainsi limité l'accès de cette manière
 
Car je ne sais pas comment fonctionne l'autre facon desolé c'est ca d'etre un newbie on fait pas toujours comme il le faudrait


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [question] Les Sessions oui mais....

 

Sujets relatifs
Question a propos de requetes SQLPetite question sur les sessions
Une question bête sur les sessions (isset)Mes sessions, question de sécurité...
Encore une question sur les sessionsquestion sur les sessions
[php] Question sur les sessionsPtite Question sur les SESSIONS
Question sur la durée de vie des SESSIONS en PHP ?Question sur les SESSIONS en PHP
Plus de sujets relatifs à : [question] Les Sessions oui mais....


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)