Nombre de connectés simultanés mal affiché

Eléphant du PHP | 258 Messages

01 juil. 2006, 16:44

salut à tous

je sais que vous serez occupés à regarder le match ce soir FRANCE-BRESIL

ca fait un moment que je suis pas venu...
eh bien, je suis venu demander de l'aide

mon problème, en fait, il n'a pas l'air d'être un pb:
j'ai crée mon site perso qui est de plus en visité et aussi le nombre de connectés simultanés grandit. actuellement, le record est battu: 12 connectés. Or, il s'affiche 1 car il paraît qu'un truc affiche uniquement 1 seul octet. c'est pourquoi il affiché 1 au lieu de 12...

voici le code suivant :

Code : Tout sélectionner

<? include("config.pass.php"); // Connexion à MySQL mysql_connect($hostname, $username , $password); mysql_select_db($database); //$dbtable= "gb_recordconnect"; // ------- // ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table // Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur $retour = mysql_query('SELECT COUNT(ip) AS nbre_entrees FROM gb_recordconnect 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 gb_recordconnect VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')'); } else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp { mysql_query('UPDATE gb_recordconnect SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''); } // ------- // ETAPE 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 * 3); // 60 * 5 = nombre de secondes écoulées en 5 minutes mysql_query('DELETE FROM gb_recordconnect WHERE timestamp < ' . $timestamp_5min); // ------- // ETAPE 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(ip) AS nbre_entrees FROM gb_recordconnect'); $donnees = mysql_fetch_array($retour); // Ouf ! On n'a plus qu'à afficher le nombre de connectés ! //echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteurs connectés sur mon site !</p>'; // Recherche du nombre de gb_recordconnect //ajuste les données de la requete id et table $query="SELECT COUNT(ip) FROM gb_recordconnect"; $sql_result = mysql_query($query); $nb_actuel=mysql_result($sql_result, 0,0); //traitement du fichier -> lecture du record $fichier_text="record.txt"; $f=fopen($fichier_text,"r+"); $record = fread ($f, filesize ($fichier_text)); if($record<$nb_actuel) //si la valeur lue dans le fichier est inferieure alors on écrase le fichier avec la nouvelle valeur { rewind ($f); fwrite($f, $nb_actuel); $record=$nb_actuel; } fclose($f); echo '' . $donnees['nbre_entrees'] . ' connecté(s) (record en simultané: ' . $record['maxrecord'] . ')'; ?>

je vous remercie d'avance de vos réponses et de vos sympathies
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 juil. 2006, 14:14

Salut,

Tu exécutes une requete de trop:
$query="SELECT COUNT(ip) FROM gb_recordconnect";
$sql_result = mysql_query($query);
$nb_actuel=mysql_result($sql_result, 0,0); 
le résultat se trouve déjà dans $donnees['nbre_entrees']

Le fichier texte contient bien 12 ?

Au lieu d'afficher $record['maxrecord'] affiche $record.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 258 Messages

02 juil. 2006, 18:24

salut
merci de m'avoir répondu

modifications effectuées et je confirme que le fichier texte contient 12

en attendant bon dimanche
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Eléphant du PHP | 258 Messages

02 juil. 2006, 19:28

CA Y EST

ca marche super bien

j'ai testé plusieurs chiffres et ca réagit bien

voila

je vous laisse aider les autres

merci qd mm
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 juil. 2006, 20:19

Hmm... et quels sont les changement effectués ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute