A voir également:
- Fermer une session php
- Easy php - Télécharger - Divers Web & Internet
- Fermer compte paypal - Guide
- Comment fermer un compte gmail - Guide
- Fermer compte outlook - Guide
- Fermer de force une application pc - Guide
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)
lickma99
Merci le père !
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"; ?>
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
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.