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 :

Fin de sessions en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 173
    Par défaut Fin de sessions en PHP
    Bonjour ,

    Je cherche à détecter si une personne à quitter mon site au moment ou elle part. Pour détecter les visiteurs j'utilise les sessions. Il est facile de détecter une personne qui se connecte mais une personne qui n'est plus présente je ne vois pas.
    Existe-t'il un événement qui indique une fin de session (l'utilisateur quitte le site sans se délogguer, par exemple en fermant le browser) ou quelque chose du genre?

    merci de votre aide

    a+

  2. #2
    Invité
    Invité(e)
    Par défaut
    quand tu fermes le browser la session est detruite; tu peux aussi autoriser la session pour un laps de temps donné

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 173
    Par défaut
    Oui mais j'aimerai effacer de ma base de données certaines infos quand la session se détruit.. j'ai donc besoin d'un événement qui enclenche le script.

  4. #4
    Invité
    Invité(e)
    Par défaut
    désolé javais mal compris, je sais pas mais si c possible jaimerais bien savoir

  5. #5
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il y a bien sesion_set_save_handler qui devrait te permettre de definir une fonction appelée à la destruction de la session : http://fr.php.net/manual/fr/function...ve-handler.php
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 173
    Par défaut
    merci!

    par contre, j'ai de la peine à comprendre comment ça marche..

    Voici l'exemple qu'ils donnent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     <?php
    function open ($save_path, $session_name) {
      global $sess_save_path, $sess_session_name;
     
      $sess_save_path = $save_path;
      $sess_session_name = $session_name;
      return(true);
    }
     
    function close() {
      return(true);
    }
     
    function read ($id) {
      global $sess_save_path, $sess_session_name;
     
      $sess_file = "$sess_save_path/sess_$id";
      if ($fp = @fopen($sess_file, "r")) {
        $sess_data = fread($fp, filesize($sess_file));
        return($sess_data);
      } else {
        return(""); // Doit retourner "" ici.
      }
     
    }
     
    function write ($id, $sess_data) {
      global $sess_save_path, $sess_session_name;
     
      $sess_file = "$sess_save_path/sess_$id";
      if ($fp = @fopen($sess_file, "w")) {
        return(fwrite($fp, $sess_data));
      } else {
        return(false);
      }
     
    }
     
    function destroy ($id) {
      global $sess_save_path, $sess_session_name;
     
      $sess_file = "$sess_save_path/sess_$id";
      return(@unlink($sess_file));
    }
     
    /*******************************************************
     * ATTENTION - Vous devrez implémenter un       *
     * collecteur de données obosolètes ici. *
     *******************************************************/
    function gc ($maxlifetime) {
      return true;
    }
     
    session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
     
    session_start();
     
    // Utilisez vos sessions comme d'habitude
    ?>
    faut-il implémenter dans chaque page toutes ces fonctions??

    dans mon cas, seulement destroy m'intéresse non?

    si c'est le cas.. par exemple dans la fonction destroy j'insère mon code qui efface mes donnés dans la bd et pis c'est bon?

  7. #7
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    en effet, seul destroy t'intéresse, mais j'ai peur qu'il ne faille toutes les redéfinir, puisqu'on ne peut pas en modifier qu'une seule...

    par contre, pour "est-ce qu'il faut le mettre sur chaque page" il faut faire de tests, je ne l'ai jamais utilisé... désolé
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

Discussions similaires

  1. [AJAX] détecter fin de session PHP en Javascript
    Par jason69 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/06/2008, 11h44
  2. [Tomcat]échange de session entre php et java
    Par benwa dans le forum Tomcat et TomEE
    Réponses: 18
    Dernier message: 05/06/2007, 17h01
  3. message d'erreur perso lors fin de session
    Par zorba49 dans le forum ASP
    Réponses: 1
    Dernier message: 26/08/2005, 11h12
  4. detruire une cookie après fin de session
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/08/2005, 16h02

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