|
Bonjour !
J'ai programmer un espace membre avec messageie ect, et actuellement j'aimerais créer un compteur de memebre et visiteur c'est à dire qu'à l'heure actuelle j'un un compteur qui comtabilise le nombre de personne connecté sur le site. Maintenant j'aimerais en creer qui contabilise les membre qui sont connecté ainsi qe les visiteur le tout en PHP.
Pourriez-vous m'éclérer sur la démarche àç suivre car la je sèche, cela serait sympa...
Merci d'avance cordialement ! |
 Admin |
Salut,
tu crées une table dans une base de données MySQL. Voici ce que tu peux coller dans PHPMyadmin :
CREATE TABLE `connectes` (`ip` int(9) unsigned NOT NULL default '0',`temps` int(10) unsigned NOT NULL default '0',`membre` tinyint(1) unsigned NOT NULL default '0') TYPE=HEAP;
Ensuite tu auras mettons un fichier nommé "connectes.php". Ce fichier doit être inclus sur toutes tes pages et contenir ceci :
<?php
    //------------------------------
    //PARAMETRES DE CONNEXION
    //------------------------------
    $hote='localhost';
    $user='root';
    $passe='';
    $base='base_de_donnees';
    $limite_temps=240; //4 minutes
 Â
    //------------------------------------------------------------------------
    //NE PREND QUE LES TROIS PREMIERES PARTIES DE L'IP
    //CECI PERMET D'ETRE PLUS FIABLE POUR LES IP DYNAMIQUES (AOL PAR EXEMPLE)    //------------------------------------------------------------------------
    $i=explode('.',$_SERVER['REMOTE_ADDR']);
    $ip_client=$i[0].$i[1].$i[2];
 Â
    //--------------------------------------------------
    //TEMPS ET LIMITE DE REACTUALISATION (ICI 4 MINUTES)
    //AVANT DE CONSIDERER LE VISITEUR COMME ABSENT
    //--------------------------------------------------
    $temps=time();
    $temps_limite=$temps-$limite_temps;
    //SI C'EST UN MEMBRE OU PAS
    if(isset($_SESSION['login']))
    {
          $membre=1;
    }
    else
    {
          $membre=0;
    }
 Â
    $connexion=mysql_connect($hote,$user,$passe) OR die('<p>Erreur de connexion à la base de données</p>');
    mysql_select_db($base) OR die('<p>Impossible de sélectionner la base '.$base.'</p>');
    mysql_query("DELETE FROM connectes WHERE temps<'$temps_limite' OR ip='$ip_client'") OR die('<p>Impossible d\'effectuer la requête</p>');
    mysql_query("INSERT INTO connectes VALUES('".$ip_client."',".$temps.",".$membre.")") OR die('<p>Impossible d\'effectuer la requête</p>');
?>
Ensuite si tu veux afficher le nombre de connectés tu places ceci dans un fichier :
<?php
    $hote='localhost';
    $user='root';
    $passe='';
    $base='base_de_donnees';
    $connexion=mysql_connect($hote,$user,$passe) OR die('<p>Erreur de connexion à la base de données</p>');
    mysql_select_db($base) OR die('<p>Impossible de sélectionner la base '.$base.'</p>');
    $req1=mysql_query('SELECT membre FROM connectes') OR die('<p>Impossible d\'effectuer la requête</p>');
    mysql_close($connexion) OR die('<p>Erreur de fermeture de la base</p>');
    $nb_connectes=0;
    $nb_membres=0;
    while($r=mysql_fetch_row($req1))
    {
          $nb_connectes++;
          if($r[0]==='1')
          {
              $nb_membres++;
          }
    }
    echo 'Nombre de membres connectés :',$nb_membres,'. Nombre de connectés total : ',$nb_connectes;
?>
voilà, bien sûr c'est simplifié mais c'est fonctionnel.
a + -- 
|
|
Bonjour,
J'ai lue votre explication au préalable sur le nombre de connectés sur un site.
Je n'ai pas tout compris étant débutant, je désirerai savoir
Je crée une table dans la BD.
Ensuite vous parlez de connectes.php.
Ma question est : je crée une page php et je colle votre synthaxe dedans en la nommant connectes.php ??(pourquoi vous dites dans toutes les pages ?) Et la deuxieme synthaxe je la colle à l'endroit ou je veux que les connectés apparaisse ?? Je réalise toute ces manipulations et ca me dit : impossible de selectionner la base :(
Aidez moi s'il vous plait
Merci |
 Admin |
Salut :-)
Tu places dans un fichier que tu nommeras "connectes.php" le code que j'ai posté plus haut pour le compteur de connectés, pas besoin de mettre autre chose. Ensuite sur chaque page de ton site (pour que le compteur de connectés fonctionne) tu mets ceci :
<?php
include './connectes.php';
?>
Ceci va inclure la page "connectes.php" et tu n'auras rien d'autre à faire. :-)
Pour l'erreur de selection de base, modifie les variables en haut du fichier "connectes.php" pour les faire correspondre à ton hébergeur.
a + -- 
|