Info sur les sessions [RESOLU] - PHP - Programmation
Marsh Posté le 28-07-2006 à 22:20:10
Bon j'ai du mal aussi avec les session mais je peut deja te dire q'une session est detruite automatiquement au bou dun certain temps
(me demande pas combien j'en sait rien )
derien
Marsh Posté le 29-07-2006 à 13:48:09
je crois me souviendre que si tu veux avoir le controle de tes sessions, tu dois les gérer toi même avec les fonctions qui vont bien que je ne sais plus quelles qu'elles sont mais que tu retrouveras facilement dans la doc.
Marsh Posté le 29-07-2006 à 14:16:20
Pour les fichiers, je sais pas trop, mais pour savoir si t'as session existe toujours, tu dois d'abord faire un :
session_start() (avant toute autre instruction)
et puis après, si tu as placé une valeur dans ta session, tu peux vérifier son existence comme ça :
isset($_SESSION['maValeur'])
Marsh Posté le 30-07-2006 à 18:49:33
ok, je vous remercie bien pour ces réponses, mais je ne dit pas que j'ai un problème avec les sessions, je sais d'ailleurs très bien les utilisés à une exception !!
Et c'est la ma question, une fois le visiteur parti du site, sa session se détruit automatiquement, comment moi je peux sans savoir si le visiteur est encore ou non sur mon site controler si ca session existe toujours ?!
En gros imaginons que j'enregistre dans une table (base de données) toutes les sessions créées sur le serveur en récupérant l'id de la session (session_id()), et bien ensuite je voudrais lancer une requete qui effacerai dans cette memetable les id de session qui n'existe plus, en d'autres termes c'est à dire les sessions qui ont été détruite !
Vous comprenez, alors est ce que cela est possbile ?! Merci beaucoup
Marsh Posté le 31-07-2006 à 10:27:17
ce n'est pa possible en php !
En effet ton client peut quitter son navigateur, et il n'aura pas remis à jour les données dans le serveur.
Les sessions ont une durée de vie. Par défaut elle sont valide indéfiniement (il me semble), mais tu peux leur attribuer une certaine durée avec une commande... sais pus laquelle, mais bon c'est indiqué dans la doc
Sinon c'est le même probléme que savoir qui est sur un site actuellement, tu as plusieurs solutions. Celle que j'aurais tendance à utiliser , tu utilise les variable de session pour définir l'Id du client, que tu stock dans un tableau, que tu remet à jour toutes les 15 minutes. ça te permet de savoir à 15 minutes prés les personnes loggué ou non. Tes sessions tu les limites à 14 minutes.. vla une idée
Marsh Posté le 31-07-2006 à 12:24:25
Salut,
Le mieux dans ton cas est d'ajouter un champ date dans ta table. A chaque fois que le visiteur clique sur un lien tu mets à jour ce champs avec la date et l'heure actuelle. Ensuite ton script efface toute les session enregistrée dans la table avec une valeur supérieure à 10 minute (temps par défaut d'une session je pense)...
Marsh Posté le 31-07-2006 à 16:20:33
Ok, pas mal comme solutions, je me disais aussi que c'était un peu impossible de le faire mais je voulais y croire !
Je vais suivre vos bons conseils, se sera le plus simple !!
Je vous remercie tous, problème résolu !
Marsh Posté le 28-07-2006 à 16:47:47
Bonjour à tous,
Voila je me pose quelques questions sur les sessions en PHP, quand on lance session_start(); à partir de ce moment là un fichier est créé sur le serveur, c'est bien ça !
Mais si le visiteur ferme le navigateur, cette session est détruite, mais le fichier aussi ?? Ensuite comment peux t'on savoir si la session est détruite ?!
Message édité par solofordoel le 31-07-2006 à 16:20:52