IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Détruire une session à la fermeture du navigateur


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut Détruire une session à la fermeture du navigateur
    bonsoir,
    j'ai créé un site qui permet le stockage des documents, les personnes abonnées peuvent les voir et les télécharger.
    Le client ne peut pas se connecter sur 2 ordinateurs au même moment, avec le même mot de passe et le même login.
    Pour cela, au moment de l'authentification, je fais une mise à jour sur un champs "deja_connecte".
    Mais une fois le client se déconnecte, je fais une autre mise à jour sur le même champs pour le réinitialiser.
    Mon problème vient de là, si le client ne se déconnecte pas d'une façon normale "logout.php", le champs "deja_connecte" garde l'ancienne valeur, comme quoi, le client est toujours connecté.
    j ai déjà fait quelques recherches, mais sans solution.

  2. #2
    Membre actif
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Points : 232
    Points
    232
    Par défaut
    Bonsoir,

    Tu peux gérer cela avec des cookies.

    Natso

  3. #3
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    La session est un cookie... Votre réponse n'apporte pas grand chose.

    @Akramweb, vous pouvez rajouter un champ dans votre table qui s'appelerait par exemple "keepalive" de type DATETIME. Dans votre outil, toutes les 5 secondes, vous pouvez aller mettre à jour (en AJAX) ce champ keepalive pour votre utilisateur courant, en mettant le timestamp actuel.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE users SET keepalive = NOW() WHERE user_id=$id
    Ensuite, il vous suffit, au moment où le client veut se connecter, de définir si le client est déjà connecté en vérifiant que le keepalive n'est pas supérieur à 10secondes par exemple. S'il est supérieur : il est déco, sinon il est co.

  4. #4
    Membre actif
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    ThomasR: A ma connaissance, un cookie est stocké côté client. Avec une date d'expiration on peut très bien gérer cela.

    Natso

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Sauf que le cookie n'expire pas directement quand on ferme le navigateur ou quand l'utilisateur est inactif. Et un cookie ne permet pas la mise à jour du flag "deja_connecte" au sein de sa base de données.
    Cela ne solutionne donc en rien son problème.

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Et en gérant une periode d'inactivité:
    A chaque page, vous enregistrez le timestamp, si lors de la prochaine page celui-ci est supérieur à N, vous le déconnectez
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Oui, c'est exactement ce que j'ai préconisé plus haut, sauf qu'au lieu de le faire à chaque page je l'ai prévu toutes les 5 secondes, cela rajoute une bien meilleure précision.

  8. #8
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    , j'avais pas lu la partie keepalive ajax
    Le problème de l'ajax, c'est que si son navigateur n'active pas ajax, ou est mal géré par celui-ci: l'application n'a jamais l'information qu'il est toujours là
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Effectivement, mais bon aujourd'hui 99% des utilisateurs ont JavaScript actif. D'ailleurs Firefox ne permet plus de désactiver JavaScript par exemple.

  10. #10
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    le probleme c'est que j'ai besoin d'une méthode pour ouvrir le fichier "logout.php" à la fermeture du site et non pas de la page.
    onunload : ne permet pas de gérer cela.

  11. #11
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Non tu n'as pas besoin de ca, tu as besoin de mettre en oeuvre un système de keepalive.
    Par ailleurs, onbeforeunload ne s'execute pas si le navigateur de la personne plante, ou si elle eteint son ordinateur etc, c'est donc une solution à ne pas prendre en compte.

  12. #12
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    @ThomasR : Merci pour votre réponse, je vais l'essayer et je vous tiendrai au courant

  13. #13
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    @ThomasR : Merci, ça marche, même-ci j'ai baladé un peu avec ajax

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détruire une session à la fermeture
    Par salv-ice dans le forum Langage
    Réponses: 2
    Dernier message: 12/03/2008, 10h40
  2. Réponses: 9
    Dernier message: 14/09/2007, 20h07
  3. fermer une session à la fermeture du navigateur
    Par phpieur dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/08/2007, 17h15
  4. Réponses: 9
    Dernier message: 21/05/2007, 18h27
  5. Détruire une session à la fermeture d'une fenètre.
    Par dell77 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 07/12/2006, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo