Vous êtes ici: Support du web > Scripts et tutoriaux > PHP / MYSQL > [PHP]Compteur de connectés script php

[PHP]Compteur de connectés script php

[PHP]Compteur de connectés script php [PHP]Compteur de connectés script php
Note : 3.9/5 (6 votes)
Derniéres modifications : 12/01/2010 à 06:15:01
Mots-Clés : compteur connectes en php script fonction compter connectes en ligne en php script gratuit simple base de donn?compteur connect?en php

Bonjour,
dans ce tutoriel, je vais vous expliquer le fonctionnement d'un compteur de connectés, et nous allons en réaliser un.

Notre service de compteur de connectés est susceptible de vous intéresser:

Le fonctionnement d'un compteur de connectés est très simple, une personne est jugée être connectée pendant les 5 minutes suivant l'ouverture de la dernière page.
Vous pouvez évidement changer cette valeur.
Le script vas utiliser MYSQL.

Dans ce script nous allons utiliser l'adresse ip du visiteur pour le reconnaitre. À chaque fois que le visiteur vas ouvrir une page, nous allons changer le timestamp de sa dernière activité au timestamp actuel.
Nous allons aussi supprimer toutes les entrées qui dates de plus de 5 minutes.
Et finalement, nous allons compter le nombre d'entrées.

Avant de commencer, vous devez créer une table cpt_connectes avec deux champs ip et timestamp.
Vous pouvez aussi le faire automatiquement en exécutant le code SQL:
Code: SQL
CREATE TABLE `cpt_connectes` (
  `ip` varchar(255) collate latin1_german2_ci NOT NULL,
  `timestamp` varchar(255) collate latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;


Donc voici le code php/mysql pour faire un compteur de connectés:
Code: PHP
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
$dnns = mysql_fetch_array(mysql_query('select count(ip) as nb from cpt_connectes where ip="'.$_SERVER['remote_addr'].'"'));
if($dnns['nb']>0)
{
    mysql_query('update cpt_connectes set timestamp="'.time().'" where ip="'.$_SERVER['remote_addr'].'"');
}
else
{
    mysql_query('insert into cpt_connectes (ip, timestamp) values ("'.$_SERVER['remote_addr'].'", "'.time().'")');
}
$times_m_5mins = time()-(60*5);
mysql_query('detete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');
$dnns2 = mysql_fetch_array(mysql_query('select count(ip) as nb from cpt_connectes'));
echo 'Il y a actuellement <strong>'.$dnns2['nb'].'</strong> connect&eacute;.';
?>

C'est tout pour ce tutoriel, si vous avez des questions, veuillez utiliser le forum ou le formulaire de contact.

Merci, j'espère que vous avez aimé ce script et qu'il vous sera utile.

Scripts et tutoriaux similaires à celui ci:

Commentaires

Ajouter un commentaire





Vous n'êtes actuellement pas connecté, certaines de vos informations(tel que votre Adresse IP) seront enregistrées pour éviter du spam.
Votre message ne doit pas contenir certains mots ou une adresse internet, sinon, il ne sera pas envoyé.

Les commentaires

Envoyé par elsabio le 19/01/2010 à 22:47:35
bonjour,
j'utilise votre code, mais quelles sont les parties que je dois changer pour que ça fonctionne sur mon site?

merci d'avance
Envoyé par RAYONXVIOLET le 05/02/2010 à 10:58:04
j'ai utilisé le script que vous avez proposez.mais lorsque je l'insère dans ma page il m'affiche ces messages d'erreurs
Notice: Undefined index: remote_addr in C:\wamp\www\cfpc\administrator\includes\compteur1.inc.php on line 4

Notice: Undefined index: remote_addr in C:\wamp\www\cfpc\administrator\includes\compteur1.inc.php on line 7
je veux juste savoir comment faire pour y remédier?
merci d avance
Envoyé par ybouane le 15/02/2010 à 23:53:13
Bonjour,
@elsabio: tu doit mettre tes identifiants dans la partie:
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
et tu doit executer le code SQL donné dans le tutoriel.

@RAYONXVIOLET : je crois que le problème viens du fait que tu utilise php en local(wamp) et qu'il ne gère pas la variable $_SERVER['remote_addr'] mais quand tu mettra ton site sur internet, ça fonctionnera.

Cordialement :)
Envoyé par djo77 le 22/01/2011 à 18:39:18
Salut,

C'est pas mal , mais juste un truc, je prend exemple sur des gros sites comme facebook, imaginons je suis chez mes parents , j'utilise mon site et mon père et ma mère aussi, je suis avec une adresse IP fixe , nous avons tous la même , que ce passe t'il ?
Envoyé par djo77 le 22/01/2011 à 18:41:48
Salut,

C'est pas mal , mais juste un truc, je prend exemple sur des gros sites comme facebook, imaginons je suis chez mes parents , j'utilise mon site et mon père et ma mère aussi, je suis avec une adresse IP fixe , nous avons tous la même , que ce passe t'il ?
Envoyé par Mordri le 24/01/2011 à 17:46:00
Pas grand chose, étant donné que l'adresse IP est la même ça comptera que pour 1 visiteur,

par contre petite coquille à la ligne :

mysql_query('detete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');

c'est delete pas detete
Envoyé par devile-la_beu le 10/03/2011 à 14:04:59
Bonjour a tous et merci pour le code , et bravo pour le compteur .
Je rencontre un soucis au niveaux de l'affichage des connectés , il m'affiche toujours 1 connectés pourtant j'ai un serveur sur ovh et sur free .
J'ai bien remplie les infos pour la base de donnés je comprend pas .
Si une personne peux me venir en aide je le remercie beaucoup .
Par contre mon champ date est bien remplie dans la base sql .
Cordialement un fidèle lecteur
Envoyé par red1 le 29/03/2011 à 05:29:53
merci!!
Envoyé par fenix80 le 01/05/2011 à 11:43:14
bonjours
peut tu m'aider voila j'ai tout suivi j'ai méme l'installation automatique sql
j'ai modifié les identifiant sa m'écrit les deux erreure la mais neanmois sa fonctionne car en dessous sa m'indique le nombre de connecté
merci d'avance

mon site est héberger chez moi sous windows avec easy php 5.3.5.0


( ! )Notice: Undefined index: remote_addr in C:\Program Files\EasyPHP-5.3.5.0\www\compteur_connectes.php on line 4

( ! ) Notice: Undefined index: remote_addr in C:\Program Files\EasyPHP-5.3.5.0\www\compteur_connectes.php on line 7
Envoyé par kRZqNocUAgNFbGlnfQN le 04/06/2011 à 15:06:46
Touchdwon! That's a really cool way of putting it!
Envoyé par iXCEzcWIqeADc le 04/06/2011 à 16:53:16
Touchdown! That's a ralely cool way of putting it!
Envoyé par as_moderateur le 31/08/2011 à 06:08:05
voici la correction du script :

<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');

$dnns = mysql_fetch_array(mysql_query('select count(ip) as nb from cpt_connectes where ip="'.$_SERVER['REMOTE_ADDR'].'"'));

if($dnns['nb']>0)
{
mysql_query('update cpt_connectes set timestamp="'.time().'" where ip="'.$_SERVER['REMOTE_ADDR'].'"');
}
else
{
mysql_query('insert into cpt_connectes (ip, timestamp) values ("'.$_SERVER['REMOTE_ADDR'].'", "'.time().'")');
}

$times_m_5mins = time()-(60*5);
mysql_query('delete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');

$dnns2 = mysql_fetch_array(mysql_query('select count(ip) as nb from cpt_connectes'));
echo 'Il y a actuellement <strong>'.$dnns2['nb'].'</strong> connect&eacute;.';
?>
Envoyé par weshwesh le 19/10/2011 à 02:38:30
Il faut changer localhost nom de la db username password .
Envoyé par AdmoxX le 03/11/2011 à 23:18:05
Il faut modifier la première les deux premières lignes biensûr avec vos informations sql ..

mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
Envoyé par madyouni le 06/01/2012 à 11:46:25


j'ai les deux message suivante
aidez moi svp comment faire
il ya des autre solution au pas ???
merci

(!)Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0.
(!)Fatal error: Unknown: Failed opening required 'C:/wamp/www/connecté/code.php' (include_path='.;C:\php\pear') in Unknown on line 0.



Envoyé par bkmyvcrl le 24/01/2012 à 12:30:20
20
Envoyé par madyouni le 27/01/2012 à 11:54:50
j'ai les deux message suivante
aidez moi svp comment faire
il ya des autre solution au pas ???
merci

(!)Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0.
(!)Fatal error: Unknown: Failed opening required 'C:/wamp/www/connecté/code.php' (include_path='.;C:\php\pear') in Unknown on line 0.

et voila la code

<?php
mysql_connect('localhost','','');
mysql_select_db('senittech');
$dnns = mysql_fetch_array(mysql_query('select count(ip) as nb from cpt_connectes where ip="'.$_SERVER['remote_addr'].'"'));
if($dnns['nb']>0)
{
mysql_query('update cpt_connectes set timestamp="'.time().'" where ip="'.$_SERVER['remote_addr'].'"');
}
else
{
mysql_query('insert into cpt_connectes (ip, timestamp) values ("'.$_SERVER['remote_addr'].'", "'.time().'")');
}
$times_m_5mins = time()-(60*5);
mysql_query('detete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');
$dnns2 = mysql_fetch_array(mysql_query('select count(ip) as nb from cpt_connectes'));
echo 'Il y a actuellement <strong>'.$dnns2['nb'].'</strong> connect&eacute;.';
?>



svp aide moi
Envoyé par Idontknow le 28/04/2012 à 13:49:18
Perso, chez-moi ça fonctionne pas (quelque soit le nombre de visiteur (/ip) = toujours 1 visiteur.
Envoyé par Maxime3011 le 16/09/2012 à 15:53:29
Merci beaucoup cela fonctionne nickel chez hebergratuit.
Envoyé par lNWEADafBgQ le 08/11/2012 à 22:18:32
That's rellay thinking at an impressive level
Envoyé par KENZA le 31/03/2013 à 06:56:31
HELLO
Envoyé par Omnes le 08/05/2013 à 18:31:54
Par contre y a pas moyen de changez le temps de refresh ?


Il y a actuellent 41 personne(s) connecté(es)
Page générée en 0.004968 secondes
Retour en haut
Règlements - Nous contacter - Aider le site - RSS News
Copyright © Support du web - Toute copie partielle ou complète de nos créations est interdite sans l'accord de ses auteurs.
Toutes les marques citées appartiennent à leurs compagnies respectives.