Compter le nombre de visiteurs

cs_esteller Messages postés 49 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 26 novembre 2012 - 2 mars 2011 à 14:15
anwerabbessi Messages postés 2 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 26 avril 2011 - 26 avril 2011 à 20:00
Bonjour à tous.

je n'arrive pas à compter le nombre total de visiteurs de mon site.
voici le code de ma page connectes.php:

<?php
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // L'IP ne se trouve pas dans la table, on va l'ajouter.
{
    mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');
}
else // L'IP se trouve déjà dans la table, on met juste à jour le timestamp.
{
    mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
}

// -------
// ÉTAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes.

// On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
$timestamp_5min time() - (60 * 5); // 60 * 5 nombre de secondes écoulées en 5 minutes
mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);

// -------
// ÉTAPE 3 : on compte le nombre d'IP stockées dans la table. C'est le nombre de visiteurs connectés.
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);


// Ouf ! On n'a plus qu'à afficher le nombre de connectés !
echo 'Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteur(s)!

';
?>



merci pour l'aide

7 réponses

cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
2 mars 2011 à 14:22
Bonjour,

Le problème est à quel endroit ?
De plus, vous devriez renommer la colonne "timestamp" car je crois que c'est un mot réservé.
0
cs_esteller Messages postés 49 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 26 novembre 2012
2 mars 2011 à 14:32
merci pour ta reponse.
le probleme est que le nombre de connecté est toujours a 1.même si 10 personnes sont connecté.
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
2 mars 2011 à 14:34
Il y a bien toutes les IP entrées dans ta BDD ?
0
cs_esteller Messages postés 49 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 26 novembre 2012
2 mars 2011 à 14:49
normalement c'est quand quelqu'un se connecte que ca affiche son adresse ip dans la base.je ne vois qu'une seul adresse ip dans ma base.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bobertin89 Messages postés 38 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 septembre 2011
3 mars 2011 à 18:36
Salut,
a l'oeil, ton code semble cohérent. Il doit s'agir d'un "truc à la con".

Pour voir d'ou viens le problème tu peux faire des echo de tes variables à l'intérieur de tes conditions. Cela te permettra de voir dans quel cas tu rentres.

De plus comme dit Ludwig 59, est-ce que les données de ta table(dans phpmyAdmin ou autre) sont cohérentes lorsque tu testes?

Pourquoi fais-tu un count lors de la premiere requete?
Il suffit de faire un select normal, d'y associer un my_sql_fetch_object et de regarder s'il y a au moins une ligne(ça change pas grand chose mais je trouve cela plus propre).

Comment fais-tu tes test?
Si tu testes de chez toi avec plusieurs ordi derriere une box, ce sera toujours l'Ip de la box que ton programme verra, donc, un seul visiteur pour ton programme.
En espérant t'aider.
Bon dev!
0
cs_esteller Messages postés 49 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 26 novembre 2012
4 mars 2011 à 14:07
Grand merci à vous tous pour vos aides.ca fontionne maintenant.encore une fois merci
0
anwerabbessi Messages postés 2 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 26 avril 2011
26 avril 2011 à 20:00
0
Rejoignez-nous