Rester connecté longtemps

WRInaute occasionnel
Bonjour,

je me demande quelle technique utiliser pour conserver une session pendant une journée entière ?
L'admin de l'appli doit pouvoir se connecter le matin pour se déconnecter le soir. Faut-il utiliser une autre technique que les sessions ?
Merci pour vos tuyaux !
 
WRInaute accro
Tu peux sauvegarder ta session dans un cookie. Au pire si ton client n'accepte pas les cookie, elle ne sera pas sauvegarder. Mais dans la majorité des cas, ça marche.
 
WRInaute occasionnel
J'enregistre donc le $ssid (l'identifiant de session) dans $_COOKIE, c'est ça ? Et je le récupère à chaque page ?
 
WRInaute accro
Oui, tout à fait !

A la création d'une session, tu l'enregistre dans le cookie pour la durée que tu veux puis tu gère ta session sans te soucier du cookie.

Sur chaque page, tu fais un truc du genre :

si (!session){
je regarde si il y a une sauvegarde dans le cookie :

- si oui, je continue la session enregistrée session=cookie[session]
- si non, je crée une session

}
 
WRInaute occasionnel
Je ne comprends pas ce que tu dis MarvinLerouge :oops:
@e-kiwi : j'ai allongé le temps de session de 30 à 60min sur le serveur privé dont je dispose chez Amen.
On est bien d'accord que le temps de session est le temps maximum d'INACTIVITE (c'est à dire sans redemander de page au serveur) permise par le serveur avant qu'il coupe la session, c'est bien cela ? Cela veut donc dire que si l'utilisateur redemande une page toutes les 59minutes, la session continue d'exister ?
 
WRInaute passionné
en principe oui, c'est ça, a moins que tu indique au cookie ou a ta session ou a ton cookie de session un délais d'expiration plus cours!
 
WRInaute passionné
MarvinLeRouge a dit:
Dj_Apx a dit:
blman a dit:
MarvinLeRouge a dit:
On peut aussi enregistrer des sessions en base de données.

Bien sûr, mais comment retrouver la session une fois que l'utilisateur se reconnecte ?
par IP... Comme dans phpBB.
Ou par id ou login sur l'utilisateur se logge (tu mets cette info dans la session).
Ca ne veut plus rien dire ;)

à part ça, il existe aussi la solution de recharger la page entièrement ou en partie toutes les 5minutes.
 
WRInaute accro
Je viens de lire le post de plus près. J'avais conseillé les cookies au début du post parce que je pensais que l'utilisateur pouvait fermé la fenêtre et conserver sa session à une prochaine reconnexion. Mais en fait j'avais mal lu...

Voici ce que je ferais dans ton cas :
- je crée une session.
- je l'enregistre dans ma BDD avec la date de création
- à chaque fois que la page est rechargé j'update la date
- je défini un temps de veille à 24 heures
- si la date dépasse les 24 heures, je détruit la session (signifie non utilisé de puis plus de 24 heures)
 
WRInaute passionné
blman a dit:
Je viens de lire le post de plus près. J'avais conseillé les cookies au début du post parce que je pensais que l'utilisateur pouvait fermé la fenêtre et conserver sa session à une prochaine reconnexion. Mais en fait j'avais mal lu...

Voici ce que je ferais dans ton cas :
- je crée une session.
- je l'enregistre dans ma BDD avec la date de création
- à chaque fois que la page est rechargé j'update la date
- je défini un temps de veille à 24 heures
- si la date dépasse les 24 heures, je détruit la session (signifie non utilisé de puis plus de 24 heures)
je me connecte à 6h du matin à ton site
tu crées une "session", enfin un truc que tu mets dans la base (c'est un objet PHP à la base, une session, donc je ne vois pas ce que tu mets dans la base :?:) : "6h du matin"
je reviens à 18h, tu actualises la date.
je reviens 2 jours après à 3H du mat, tu actualises la date...

(rappel : s'il n'y a qu'un seul admin, ta vérif de 24 heures ne peut pas marcher).

l'art est difficile, la critique est facile, je l'admets, mais là je ne vois pas du tout comment tu fais marcher ta méthode :p
 
WRInaute occasionnel
Moi non plus ! Ce que j'ai fait pour le moment : j'ai allongé la durée de session à 60 min car à priori, l'admin fera une action (GET ou POST) plus fréquemment que cela. Ainsi, il gardera la session de 8H00 du mat' à 19H00.
Me trompé-je ?
Et si je veux ensuite conserver des infos à des fins statistiques, je verrai pour enregistrer les sessions dans la BDD. Oui, mais enregistrer quoi ? L'id de session ? Les variables de session ? Cela reviendrait à carrément réinventer la roue, non ?
Je suis en tous cas votre conversation et les solutions proposées avec intérêt !
 
WRInaute accro
Dj_Apx, dans mon exemple, je crée la session moi même, je n'utilise pas le PHPSID de php.
Pour un intranet, un extranet ou un backoffice, ça ne pause pas de problème. Le 24 heures, c'était au pif, moi généralement, j'utilise 1 heure de temps de veille
 
Discussions similaires
Haut