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 :

nombre de sessions actives.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 22
    Points : 18
    Points
    18
    Par défaut nombre de sessions actives.
    A chaque que l'utilisateur fournit son login et son password, une session est créee et je recupère l'id de la session.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start(); 
      $_SESSION['login'] = $login;
      $_SESSION['pass'] = $pass1;
      $a= $_SESSION['login'] ;
      $id = session_id();
    J'aimerais avoir en temps réel le nombre de session actives.
    merci de votre aide.

  2. #2
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    tu peux tjr stocker ces idSession dans un tableaun et faire un count(tableau)

  3. #3
    Invité
    Invité(e)
    Par défaut


    tu ne peux pas savoir à quel moment précis un utilisateur se déconnecte ou n'utilise pas sa session.

    il faut donc instaurer un système de timeout au bout duquel tu comptes une session comme inactive (meme si le gars est simplement parti se chercher un café et qu'apres il revient sur sa session)

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Je te conseil d'utiliser ton propre gestionnaire de session

    voici celui de Ying Zhang qui utilise mysql, ainsi, pour savoir
    qui est en ligne, une simple requête suffit.

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <?
    /* ------------------------------------------------------------------------
    * session_mysql.php
    * ------------------------------------------------------------------------
    * PHP4 MySQL Session Handler
    * Version 1.00
    * by Ying Zhang (ying@zippydesign.com)
    * Last Modified: May 21 2000
    *
    * ------------------------------------------------------------------------
    * TERMS OF USAGE:
    * ------------------------------------------------------------------------
    * You are free to use this library in any way you want, no warranties are
    * expressed or implied.  This works for me, but I don't guarantee that it
    * works for you, USE AT YOUR OWN RISK.
    *
    * While not required to do so, I would appreciate it if you would retain
    * this header information.  If you make any modifications or improvements,
    * please send them via email to Ying Zhang <ying@zippydesign.com>.
    *
    * ------------------------------------------------------------------------
    * DESCRIPTION:
    * ------------------------------------------------------------------------
    * This library tells the PHP4 session handler to write to a MySQL database
    * instead of creating individual files for each session.
    *
    * Create a new database in MySQL called "sessions" like so:
    *
    * CREATE TABLE sessions (
    *      sesskey char(32) not null,
    *      expiry int(11) unsigned not null,
    *      value text not null,
    *      PRIMARY KEY (sesskey)
    * );
    *
    * ------------------------------------------------------------------------
    * INSTALLATION:
    * ------------------------------------------------------------------------
    * Make sure you have MySQL support compiled into PHP4.  Then copy this
    * script to a directory that is accessible by the rest of your PHP
    * scripts.
    *
    * ------------------------------------------------------------------------
    * USAGE:
    * ------------------------------------------------------------------------
    * Include this file in your scripts before you call session_start(), you
    * don't have to do anything special after that.
    */
     
    $SESS_DBHOST = "localhost";            /* database server hostname */
    $SESS_DBNAME = "";    /* database name */
    $SESS_DBUSER = "";            /* database user */
    $SESS_DBPASS = "";                    /* database password */
     
    $SESS_DBH = "";
    //$SESS_LIFE = get_cfg_var("session.gc_maxlifetime");
    $SESS_LIFE = 3600;
     
    function sess_open($save_path, $session_name) {
        global $SESS_DBHOST, $SESS_DBNAME, $SESS_DBUSER, $SESS_DBPASS, $SESS_DBH;
     
        if (! $SESS_DBH = mysql_pconnect($SESS_DBHOST, $SESS_DBUSER, $SESS_DBPASS)) {
            echo "<li>Can't connect to $SESS_DBHOST as $SESS_DBUSER";
            echo "<li>MySQL Error: ", mysql_error();
            die;
        }
     
        if (! mysql_select_db($SESS_DBNAME, $SESS_DBH)) {
            echo "<li>Unable to select database $SESS_DBNAME";
            die;
        }
     
        return true;
    }
     
    function sess_close() {
        return true;
    }
     
    function sess_read($key) {
        global $SESS_DBH, $SESS_LIFE;
        $qry = "SELECT value FROM sessions WHERE sesskey = '$key' AND expiry > " . time();
        $qid = mysql_query($qry, $SESS_DBH);
        if (list($value) = mysql_fetch_row($qid)) return $value;
        return false;
    }
     
    function sess_write($key, $val) {
        global $SESS_DBH, $SESS_LIFE;
        $expiry = time() + $SESS_LIFE;
        $value = addslashes($val);
        $qry = "UPDATE sessions SET expiry = $expiry, value = '$value' WHERE sesskey = '$key'"; // AND expiry > " . time();
        $qid = mysql_query($qry, $SESS_DBH);
        if(mysql_affected_rows()<1) {
            $qry = "INSERT INTO sessions (sesskey, expiry, value) VALUES ('$key', $expiry, '$value')";
            $qid = mysql_query($qry, $SESS_DBH);        
        }
        return $qid;
    }
     
    function sess_destroy($key) {
        global $SESS_DBH;
        $qry = "DELETE FROM sessions WHERE sesskey = '$key'";
        $qid = mysql_query($qry, $SESS_DBH);
        return $qid;
    }
     
    function sess_gc($maxlifetime) {
        global $SESS_DBH;
        $qry = "DELETE FROM sessions WHERE expiry < " . time();
        $qid = mysql_query($qry, $SESS_DBH);
        return mysql_affected_rows($SESS_DBH);
    }
     
    session_set_save_handler(
        "sess_open",
        "sess_close",
        "sess_read",
        "sess_write",
        "sess_destroy",
        "sess_gc");
    ?>
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

Discussions similaires

  1. [MySQL] Mesure et enregistrement du nombre de connexions simultanée et de session actives
    Par marcandre dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/05/2009, 08h58
  2. [Sécurité] Nombre de session active
    Par krfa1 dans le forum Langage
    Réponses: 8
    Dernier message: 03/04/2006, 15h05
  3. nombre de sessions consecutives
    Par clancy182 dans le forum Requêtes
    Réponses: 5
    Dernier message: 13/02/2006, 06h47
  4. [JSP][TOMCAT] Afficher le nombre de sessions en cours
    Par kitov dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 24/05/2004, 13h48

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