Question

Actuellement, dans mon script php, après la connexion d’un utilisateur, j’ai enregistré session_login = 1. Mais j’ai un problème. J'ai l'habitude d'utiliser Firefox, multi-onglets (je crois que la plupart des gens et tous les navigateurs Web actuels ont une fonction multi-onglets). J'ai fermé l'onglet qui contient la session, mais je n'ai pas fermé le navigateur. Après quelques heures, je reviens sur la même page qui nécessite que je me connecte, mais ce n'est pas le cas. Il n’est pas nécessaire que je me reconnecte (je pense que c’est appelé "session"). Y a-t-il un moyen de déconnecter l’utilisateur s’il ferme l’onglet, ferme le navigateur?

J'ai une solution pour le moment, le temps mort. Mais, j'ai très peu de connaissances sur la date et l'heure en php, ce serait donc la dernière option. Je voulais savoir, y at-il autre chose que je puisse faire, en plus d'utiliser le temps mort?

Était-ce utile?

La solution

PHP propose un moyen simple de définir la durée d'une session avant son expiration:

session_set_cookie_params(3600); // make it expire after 1 hour

Indiquez simplement le nombre de secondes que vous souhaitez que la session dure (dans l'exemple, 1 heure = 60 minutes = 3600 secondes).

http://us2.php.net /manual/en/function.session-set-cookie-params.php

Autres conseils

Un cookie de session n'est effacé du navigateur que lorsque la session du navigateur est fermée (c'est-à-dire lorsque le navigateur est fermé): d'où son nom. Si vous souhaitez que la session soit effacée peu de temps après la fermeture de l'onglet, vous pouvez définir un délai d'expiration très court pour le cookie (environ 5 minutes) et le conserver dans la base de données. Créez ensuite une fonction javascript sur la page Web, appelant chaque minute un fichier de votre serveur: ce fichier est ensuite "actualisé". le cookie / entrée de base de données pour les cinq prochaines minutes. S'ils quittent ensuite votre site pendant plus de cinq minutes, la session est invalidée.

Vous pouvez également ajouter un Javascript " onunload " fonction qui détecte si la page Web a été fermée ou si elle est passée à une autre page: vous pouvez ajouter un crochet pour appeler un " destroycookie " " fonction - cependant, vous devrez vérifier qu’ils ne sont pas simplement allés sur une autre page de votre site et que deux pages de votre site ne sont pas réellement ouvertes dans deux onglets.

Je pense que l'option que vous recherchez est le paramètre d'expiration du cookie de session. Je ne me souviens pas de la commande PHP, mais vous devriez pouvoir configurer le cookie pour qu'il expire à la fermeture de la fenêtre.

Voici la documentation de la session PHP: http: //us2.php. net / manual / fr / book.session.php

Peut-être pourriez-vous utiliser session_write_close ()?

Il existe un commentaire sur la documentation PHP relative à la fonction session_destroy qui pourrait vous être utile: http://us2.php.net/manual/en/function.session-destroy.php#71889

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top