A voir également:
- Fermer une session php
- Easy php - Télécharger - Divers Web & Internet
- Fermer compte paypal - Guide
- Fermer compte outlook - Guide
- Retour a la ligne php ✓ - Forum PHP
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
6 réponses
Bonjour
Si j'en crois le commentaire trouvé dans le manuel PHP
http://www.php.net/manual/fr/function.session-cache-expire.php
The manual probably doesn't stress this enough:
** This has nothing to do with lifetime of a session **
que je me risque à traduire :
Le manuel n'insiste probablement pas assez sur ce point :
** Ceci n'a aucun rapport avec la durée d'une session **
Personnellement, pour faire une expiration automatique, je me contente de mettre l'heure dans une variable de session $_SESSION['derniereaction'] = time(); lors de l'ouverture de la session.
Lors de l'appel suivant (de la même session)
(en espérant ne pas avoir dit trop de bêtises cette fois)
Si j'en crois le commentaire trouvé dans le manuel PHP
http://www.php.net/manual/fr/function.session-cache-expire.php
The manual probably doesn't stress this enough:
** This has nothing to do with lifetime of a session **
que je me risque à traduire :
Le manuel n'insiste probablement pas assez sur ce point :
** Ceci n'a aucun rapport avec la durée d'une session **
Personnellement, pour faire une expiration automatique, je me contente de mettre l'heure dans une variable de session $_SESSION['derniereaction'] = time(); lors de l'ouverture de la session.
Lors de l'appel suivant (de la même session)
if (time()-$_SESSION['derniereaction'] > $dureelimite) { // la session a expiré } else { $_SESSION['derniereaction'] = time(); // on relance // reste du code }
(en espérant ne pas avoir dit trop de bêtises cette fois)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 juin 2009 à 20:53
16 juin 2009 à 20:53
as tu essayé cette solution proposée plus haut ?
/* Configure le limiteur de cache à 'private' */ session_cache_limiter('private'); $cache_limiter = session_cache_limiter(); /* Configure le délai d'expiration à 30 minutes */ session_cache_expire (30); $cache_expire = session_cache_expire(); /* Démarre la session */ session_start(); echo "Le limiteur de cache est maintenant fixé à $cache_limiter<br />"; echo "La session en cache va expirer après $cache_expire minutes"; ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
15 juin 2009 à 16:55
15 juin 2009 à 16:55
je t'ai trouvé ça sur le site: www.manuelphp.com
session_cache_expire()Retourne la configuration actuelle du cache expire
[ Exemples avec session_cache_expire ] PHP 4 >= 4.2.0, PHP 5
int session_cache_expire ( int new_cache_expire )
session_cache_expire retourne la configuration actuelle du cache expire Si new_cache_expire est fourni dans le fichier php.ini , la configuration actuelle de cache expire sera remplacée par new_cache_expire .
Le délai d'expiration du cache est remis à sa valeur par défaut de 180, stockée dans session.cache_limiter , au démarrage de la requête. Par conséquent, vous devez appeler session_cache_expire à chaque requête (et avant que session_start ne soit appelée).
Exemple avec session_cache_expire
<?php
/* Configure le limiteur de cache à 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
/* Configure le délai d'expiration à 30 minutes */
session_cache_expire (30);
$cache_expire = session_cache_expire();
/* Démarre la session */
session_start();
echo "Le limiteur de cache est maintenant fixé à $cache_limiter<br />";
echo "La session en cache va expirer après $cache_expire minutes";
?>
Note
La directive new_cache_expire n'a de valeur que si session.cache_limiter a une valeur différente de nocache .
vas voir ton php.ini pour ça
session_cache_expire()Retourne la configuration actuelle du cache expire
[ Exemples avec session_cache_expire ] PHP 4 >= 4.2.0, PHP 5
int session_cache_expire ( int new_cache_expire )
session_cache_expire retourne la configuration actuelle du cache expire Si new_cache_expire est fourni dans le fichier php.ini , la configuration actuelle de cache expire sera remplacée par new_cache_expire .
Le délai d'expiration du cache est remis à sa valeur par défaut de 180, stockée dans session.cache_limiter , au démarrage de la requête. Par conséquent, vous devez appeler session_cache_expire à chaque requête (et avant que session_start ne soit appelée).
Exemple avec session_cache_expire
<?php
/* Configure le limiteur de cache à 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
/* Configure le délai d'expiration à 30 minutes */
session_cache_expire (30);
$cache_expire = session_cache_expire();
/* Démarre la session */
session_start();
echo "Le limiteur de cache est maintenant fixé à $cache_limiter<br />";
echo "La session en cache va expirer après $cache_expire minutes";
?>
Note
La directive new_cache_expire n'a de valeur que si session.cache_limiter a une valeur différente de nocache .
vas voir ton php.ini pour ça
raph0351
Messages postés
369
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
17 mai 2011
14
15 juin 2009 à 16:59
15 juin 2009 à 16:59
salut,
je suis pas tré tré bon en matiere d'explication
mais je te fait part de ceci qui ma pas mal depaner en php:
http://www.php.net/manual/fr/
jespere que sa te depanera
-----------------------------------------------------------------------------------------------------------------------------------
ALLEZ L'ASM CLERMONT AUVERGNE !!
je suis pas tré tré bon en matiere d'explication
mais je te fait part de ceci qui ma pas mal depaner en php:
http://www.php.net/manual/fr/
jespere que sa te depanera
-----------------------------------------------------------------------------------------------------------------------------------
ALLEZ L'ASM CLERMONT AUVERGNE !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
non "le père" tu n'as pas dit des bêtises, c'est presque ce que je cherche.
presque, parce que si je suivrai ton conseil ma session sera fermée après $dureelimite, même si je suis entrain de travailler dans mon site. Ce que je cherche c'est la désactivation de ma session si elle reste inactive pour la durée $dureelimite (pas de clique souris et clavier)
presque, parce que si je suivrai ton conseil ma session sera fermée après $dureelimite, même si je suis entrain de travailler dans mon site. Ce que je cherche c'est la désactivation de ma session si elle reste inactive pour la durée $dureelimite (pas de clique souris et clavier)
La remarque sur les bêtises était destinée à Alain_42, je venais de le contredire sur un autre post alors que c'était lui qui avait raison.
Pour ce qui est de l'inactivité d'une session, je te signale qu'à moins d'utiliser AJAX (que je ne connais pas), le serveur ne sait pas que tu es en train de cliquer sur la souris ou de frapper quelque chose au clavier. Il ne le sait que quand tu cliques sur un lien ou que tu valides un formulaire. Il ne peut pas vérifier quelque chose dont il n'a pas connaissance.
Mais que tu mettes en oeuvre Ajax ou non, je pense que le principe de la surveillance de la durée d'inactivité sera exactement la même. La seule différence sera la nature des événements considérés comme des activités.
Pour ce qui est de l'inactivité d'une session, je te signale qu'à moins d'utiliser AJAX (que je ne connais pas), le serveur ne sait pas que tu es en train de cliquer sur la souris ou de frapper quelque chose au clavier. Il ne le sait que quand tu cliques sur un lien ou que tu valides un formulaire. Il ne peut pas vérifier quelque chose dont il n'a pas connaissance.
Mais que tu mettes en oeuvre Ajax ou non, je pense que le principe de la surveillance de la durée d'inactivité sera exactement la même. La seule différence sera la nature des événements considérés comme des activités.
25 août 2015 à 15:48