Aller au contenu

Fin de session Apache


Sujets conseillés

Posté

Bonjour

Jutilise des variables de session Php Apache ; jai laissé la durée à la valeur par défaut : 1440.

Ca mest utile pour que les variables soient supprimées après une période dinactivité.

Ma question : à partir de quel moment la durée de la session est-elle décomptée ?

A partir du début de la session ? à partir du moment où lutilisateur devient inactif ? autre chose ?

Par avance merci de votre aide ?

Francois

Posté

Moi ça paraitrait logique que ce soit remis à zéro à chaque session_start() (qui démarrer une nouvelle session ou restaure la session si existante).

Sinon ça voudrait dire que dans le cas d'une authentification, il faudrait se reconnecter toutes les 24 minutes même en surfant...

Posté

bonjour et merci de ta réponse qui paraît logique effectivement.

Question complémentaire, je démarre mes pages avec:

if (!session_id()) session_start();

que j'avais trouvé qqepart quand j'ai commencé avec des variables session.

Ca parait bon?

Ou bien, cela équivaut-il à laisser la session démarrer au premier session_start() rencontré? Ce qui voudrait dire que le visiteur n'aurait que 24 minutes devant lui à partir de son premier accès?

Si Oui, par quoi faudrait-il que je remplace cet ordre Php? seulement session_start()? Ca fonctionne d'"empiler" les session_start() les uns sur les autres au fil de la navigation d'une page vers l'autre?

Par avance merci.

Francois

Posté

Les sessions ne s'empilent pas :

session_start() crée une session (ou restaure celle trouvée sur le serveur, via l'identifiant de session passé dans une requête GET, POST ou par un cookie).

Tu peux mettre session_start tout seul (à condition que session.auto_start soit à 1 je pense)

Posté

Merci de vos réponses.

Est-ce que je comprend bien ce que vous dites:

- si j'utilise session_start () à chaque page, ça remet le compteur à zéro à chaque fois

- si j'utilise if (!session_id()) session_start() à chaque page, la remise à zéro se sera produite une seule fois, en rencontrant le premier session_start()

D'accord?

Francois

Posté

Non je ne crois pas.

session_start() et if (!session_id()) session_start() sont pour moi identique.

Dans tous les cas, la durée de la session repart à 0 (sinon on serait déconnectés souvent)

Enfin c'est ce que j'en conclus et ce qui parait logique.

Posté (modifié)

Oui, d'expérience, je serai tenté de convenir avec ce que tu dis, j'aurais été déconnecté de nombreuses fois.

Je vais rester avec mon session_start ...

Donc, ma question suivante est: où peut on trouver la valeur instantannée du compteur de ce délai?

Je voudrais pouvoir afficher (alert box?) le temps qui reste à courrir avant que la session soit coupée.

Merci.

Francois

Modifié par francoisch
Posté

En direct ce n'est guère possible car la session démarre au moment où le serveur envoie la page.

Ensuite on ne sait pas ce que fait l'internaute : il lit (pas vite), il recopie, il fait autre chose, il est parti, voire il a fermé le navigateur et on ne peut pas le savoir.

Avec Javascript éventuellement, mais avec les réserves habituelles (que le browser l'accepte, qu'il soit activé etc)

Posté

Oui, un peu limité par l'emploi pas universel du JS.

J'ai l'idée, en tête de page, de tester une des variables de session et, si elle n'est plus là, d'émettre un message d'information.

Une solution simple.

Francois

Posté

Non, c'est différent.

Je passe de page en page une dizaine de variables de session.

Quand les variables ont disparu, ce qui me paraît souhaitable, l'affichage des pages devient sans signification et ça surprend.

Je vais donc mettre un message qui indiquera la conduite à tenir.

Francois

  • 1 month later...
Posté

ajoute un js dans les pages qui va se connecter 20' après le chargement, histoire de remettre la session à 0

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...