Supprimer le fichier session, est ce possible..

Supprimer le fichier session, est ce possible.. - PHP - Programmation

Marsh Posté le 16-07-2005 à 14:39:31    

:hello:  :bounce:  Salut et bon weekend... !!  :)  
 
 
Voila, je voudrais savoir comment faire (configurer le serveur) pour supprimer le fichier relatif a une session, lorsque je ferme le navigateur, ou ke je detruit ma session..  :??:  :??:  
 
J'ai essayer coté php ( unset(), destroy()) mais ca ne supprime pas le fichier ca le vide seulement ...  :pfff:  :heink:  
 
Du cote de php.ini, rien trouvé de tres claire quand a la suppression des fichiers...  :(  
 
Donc si quelqu' un pouvait m aider ca serait cool.. !!  
 
 
Merci d avance!   :hello:  :bounce:


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 16-07-2005 à 14:39:31   

Reply

Marsh Posté le 16-07-2005 à 15:20:10    

Pas de sessioniste dans l 'assistance...??    :pfff:


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 16-07-2005 à 16:14:28    

Reply

Marsh Posté le 16-07-2005 à 18:40:45    

Cool ca a l'air d etre ca ... merci beaucoup.. vais essayer de fracasser mes donnees de session... :lol: :p


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 17-07-2005 à 11:16:24    

C'est nickel sielfried... cote deconnexion.. ca me fracasse bien mes sessions et leurs fichiers... :lol: :) :p
 
Mais maintenant il faudrait que qd je ferme mon navigateur, les fichiers soient egalement detruits... :??:   :hello:


Message édité par bakastef le 17-07-2005 à 11:16:48

---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 17-07-2005 à 12:32:01    

Ils ne le sont pas automatique ?

Reply

Marsh Posté le 17-07-2005 à 13:00:29    

ben non... j utilise easyphp 1.8.. et pas defaut il sont "vidé" (ttes les variables dans le fichier à 0) mia spas supprimés... jer pense bien que ca doit etre configurable quelque part mais je trouve pas ou.. :sweat: :pfff:


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 17-07-2005 à 20:07:07    

un ptit up de fin de weekend.. :lol:


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 17-07-2005 à 20:09:04    

La fonction session_destroy() détruit toutes les données relatives à ta session et le serveur ne sauvegarde rien.
 
Sinon, essaie de configurer dans ton php.ini le paramètre session.lifetime à 0, ce qui détruira ladite session dès déconnexion du client.
 
Tu peux sinon automatiser le nettoyage du path dans lequel sont stockés les fichiers de session (paramètre dans session.save_path).
 
Mais à ma connaissance, le simple session_destroy() suffit à effacer les fichiers de la session concernée.
 
Je fouille un peu au cas où.

Reply

Marsh Posté le 17-07-2005 à 21:59:06    

Ben il semblerait que mon session_destroy() soit faignant.. parcekil supprime rien ... et que les fichier sessions s accumulent dans mon  repertoire... :(
 
Mais encore pour ca, c'est reglé, j'ai utilisé le script de sielfried et ca marhce... c est de la pulverisation de session... :lol:  
 
mon probleme c'est que qd je ferme mon navigateur, mes fichiers de sessions sont toujours la... et la ca se corse...  
session.lifetime=0 ca marche pas!  :pfff:


Message édité par bakastef le 17-07-2005 à 22:04:34

---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 17-07-2005 à 21:59:06   

Reply

Marsh Posté le 17-07-2005 à 22:53:17    

Ben à la fermeture du navigateur c'est plus vraiment une question de PHP, mais plus la config de ton browser.
 
Enfin normalement il me semble qu'un browser est censé virer les cookies de session quand tu le fermes...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 17-07-2005 à 23:53:00    

Les cookies sont stockés sur le disque dur su client, mais les fichiers de session sont présents sur le serveur.
 
bakastef, essaie de modifier la valeur de session.gc_maxlifetime dans php.ini. Ce paramètre détermine la durée de vie d'une session en secondes sur le serveur. A priori, si les informations sont détruites, on peut supposer qu'il en soit de même pour les fichiers.
Fais tes essaie en mettant une valeur mini à 1à secondes par exemple. Si ton répertoire est vide, c'est gagné.

Reply

Marsh Posté le 18-07-2005 à 00:54:26    

Ben si c est pas une question de php.. c est la config du browser, ou du serveur...  dans la config d apache ya rien... :pfff: :(
 
Et pour gebruik, j ai testé avec session.gc_maxlifetime , et rien de mieux... mes fichiers de sessions restent dans mon repertoire qd je ferme mon navigateur... :sweat:
c'est fou ca doit pouvoir se gerer qd meme....
 
je commence a desesperer..


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 18-07-2005 à 10:35:45    

Et bien tu n'as plus qu'à te coder un comportement serveur qui les effacera régulièrement.
C'est quelle version de PHP que tu utilises ?

Reply

Marsh Posté le 18-07-2005 à 11:49:39    

easypph 1.8... avec php5 en plus...:pfff:  


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 18-07-2005 à 15:18:18    

Tu as quoi comme valeur pour session.gc_probability ?
A chaque fois qu'une session est lancé, PHP tire un nombre entre 0 et 99. Si ce nombre est inférieur à la valeur définie avec session.gc_probability, PHP lit le contenu du répertoire ou sont écrits les fichiers de session et doit virer les fichiers de sessions terminées.
A toi de régler le paramètre pour trouver un équilibre entre un scan du répertoire fréquent et une quantité de fichiers à supprimer, chaque paramètre ayant une influence sur la dispo de ton serveur.
 
Tu utilises EasyPHP en local ou sur une machine distante ?

Reply

Marsh Posté le 18-07-2005 à 15:35:15    

Ben c est bien ce ke j'avais compris a propos de session.gc_probability ...
 
j'ai mis 100% mais pas plus... Je commence a croire ke la supression de fichier de session est un mythe :lol:  
 
Je trouve nul part d'info autre que le session.lifetime, et pas un forum ou un gars parle de ca...  
 
 
:(  
Le probleme c'est que temps que j ai pas resolu ca , je peux pas avancer... :pfff: :sweat:
 
 
A moins que quelqu'un ai une autre idee pour tester si des utilisateurs sont connectés. Moi je pensais faire comme ca ...  
 
Faire un script qui tourne sur un serveur, et qui , entre autre, verifie si pour chaque ses_id que je rentre dans ma base (qd une personne se connecte), il ya le fichier sessions correspondant dans mon repertoire /temp_session ...  
Pour que ca marche, il faut que les fichiers de sessions soit supprimés si l'utilisateur ferme son navigateur...
 
 
 
Si ya mieux je prends les idées... :lol: :bounce:


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 18-07-2005 à 15:53:31    

Je suis quand même très surpris que tes fichiers ne soient pas supprimés. Je suis allé vérifier sur des sites que j'ai réalisé depuis plusieurs mois avec gestion de session, en PHP 4, et le répertoire ou ils sont stockés ne contient pas autant de fichiers qu'il y a eu de connexions.
C'est pour cela que je t'ai demandé si tu avais testé sur un serveur distant et non en local.
 
Tu es confronté à un problème malheureusement classique et que l'on retrouve également en ASP ou même en Java (quoi qu'il est plus facile de connaître en Java ne nombre de sockets de connexions établis sur un serveur) : la fermeture du navigateur du client n'entraîne pas la fermeture de la session sur le serveur.
Soit tu définis un temps de session très court et ce n'est pas sans incidence pour ton client (imagine sur un site de vente en ligne ce qui pourrait se passer si au bout de 10 minutes l'utilisateur devait remplir à nouveau son panier), soit tu analyses régulièrement ton répertoire pour supprimer les fichiers en trop, mais ça va te bouffer beaucoup de ressources niveau serveur.
 
Tu peux peut-être créer une table dans laquelle tu stockeras par exemple l'IP du visiteur et tu compares chaque nouvelle connexion avec le contenu de ta table. Là encore, attention aux ressources, ça peut devenir très vite une usine à gaz.
Si tu ne gères que des sessions scrites et que tu n'utilises pas de cookies, ça peut être une méthode pour identifier à nouveau une personne qui s'est connectée 5 vminutes avant et qui a fermé son navigateur. Accessoirement, ça pourrait te permettre d'effacer le fichier de sa précédente session.


Message édité par gebruik le 18-07-2005 à 15:54:23
Reply

Marsh Posté le 18-07-2005 à 16:04:29    

Ben pour preciser un peu ce que je suis en train de faire...
:lol:
 
Je bosse sur un site intranet dans lequel il y a toute une partie messagerie, avec boite de reception... de plus , qd un utilisateur poste un message, toutes les personnes connectées et destinataire du message doivent recevoir une alerte. C'est pour ca que j'ai besoin de faire le menage et de connaitre qu'elles son les user connectés...   :sweat:  
 
A la connexion je stock dans ma bdd l'ip_actuel de l utilisateur, son id_session, et je pensais avec un script sur le serveur comparer les id_session de ma base avec les fichiers session sur mon serveur...  
 
Mais malheureusement, si j'ai des fichiers qui n ont rien a faire la .. je suis dans le caca... :pfff:
 
 
Si y a pas moyen de supprimes les fichiers de session indesirable, je suis bon pour me prendre la tete comme il faut pour trouver autre chose... :(


Message édité par bakastef le 18-07-2005 à 16:05:14

---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 18-07-2005 à 16:28:46    

Et ta messagerie tu la gères en PHP ?
Serveur DHCP ou table de routage ?
 
Je n'ai pas tous tes éléments, mais face à ce genre de situation, je passerais plutôt par le soft de messagerie de la boite. Ou bien par un système de messages privés comme sur tout forum qui se respecte.
La gestion de session est juste une facilité pour gérer des utilisateurs qui n'acceptent pas de cookies et la possibilité de stocker des variables utilisateurs sans se prendre trop le crâne (tu auras remarqué que c'est plutôt simple en terme de programmation).
 
Quid de la gestion des cookies sur les posts client ?

Reply

Marsh Posté le 18-07-2005 à 17:03:10    

La messagerie est made in moi-meme... :lol:  
 basé sur les ip des machines par services allié a une  Ip_actu dans ma base pour identifier les utilisateurs sur les differentes machines. :)
 
De plus les messages privés comme tu dis, existent, c'est juste qu'il FAUT que qd une personne recoit un message dans sa boite, je lui affiche un pop-up, une alerte net send peu importe, lui indiquant kil fo lire la boite... D'ou mon probleme de savoir ki est connecté...
 
Et pour les cookies , j'ai pas forcement de contrainte.. mais je vois pas en koi stocker des cookies sur les poste m'aidera a savoir si l'utilisateur et connecté ou si  l'utilisateur a fermer son navigateur au lieu de se deconnecter proprement :pfff:


Message édité par bakastef le 18-07-2005 à 17:03:24

---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
Reply

Marsh Posté le 18-07-2005 à 22:17:04    

Parce que un cookie écrit sur un poste client, tu peux aussi l'écrire dans une table. Et qu'un cookie permet de reconnaître un client sans qu'il ait à s'identifier à nouveau. Et d'écrire d'autres informations.
 
Pour les messages, tu n'as pas choisi la solution la plus simple, mais l'idée est sympa.
Est-ce que tu peux récupérer la table de routage ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed