Problème de php
jérémy1664
Messages postés
165
Statut
Membre
-
sfel Messages postés 1640 Date d'inscription Statut Membre Dernière intervention -
sfel Messages postés 1640 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai réalisé un compteur en suivant un tuto
J'y ai rajouté un id afin d'avoir le nombre total de visite mais il m'affiche toujours qu'un seul visiteur est connecté
On dirait qu'il ne prend pas les ip des visiteurs extérieurs.
Je voulait savoir si c'était un problème dans mon code ou un problème de mon hébergeur.
Je poste mon code :
Je fait ensuite un include pour l'appeler dans mon baspage.php
Vous pouvez voir le résultat ici : http://www.gs-computer.eu/index.php?...ociete&lang=fr
J'essaie de changer cette ligne car je ne la comprend pas, je n'ai pas de nbre_entrees dans ma table
Merci d'avance j'ai vraiment besoin d'aide je comprend pas pourquoi ça ne marche pas<code>Configuration: Windows Vista
Firefox 2.0.0.12 ?>
J'ai réalisé un compteur en suivant un tuto
J'y ai rajouté un id afin d'avoir le nombre total de visite mais il m'affiche toujours qu'un seul visiteur est connecté
On dirait qu'il ne prend pas les ip des visiteurs extérieurs.
Je voulait savoir si c'était un problème dans mon code ou un problème de mon hébergeur.
Je poste mon code :
<?php // Connexion à MySQL mysql_connect("localhost:3306", "pascal", "mncqvcjc"); mysql_select_db("gs_computer"); // ------- // 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(*) 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 (ip, timestamp) 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'] . '\''); } // ------- // 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 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes mysql_query('DELETE FROM connectes 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(*) AS nbre_entrees FROM connectes'); $donnees = mysql_fetch_array($retour); $retour = mysql_query('SELECT * FROM connectes order by id desc limit 1'); $id = mysql_fetch_array($retour); // Ouf ! On n'a plus qu'à afficher le nombre de connectés ! $req = mysql_query('SELECT * FROM connectes'); if (mysql_num_rows($req)>=0){ echo $id['id']. ' visites<br>'; echo 'Vous êtes ' . $donnees['nbre_entrees'] . ' visiteurs actuellement connectés</p>'; } else { echo (''); } ?>
Je fait ensuite un include pour l'appeler dans mon baspage.php
Vous pouvez voir le résultat ici : http://www.gs-computer.eu/index.php?...ociete&lang=fr
J'essaie de changer cette ligne car je ne la comprend pas, je n'ai pas de nbre_entrees dans ma table
<?php if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
Merci d'avance j'ai vraiment besoin d'aide je comprend pas pourquoi ça ne marche pas<code>Configuration: Windows Vista
Firefox 2.0.0.12 ?>
A voir également:
- Problème de php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
2 réponses
Bonsoir,
devant la ligne que tu ne comprends pas ajoutes :
echo "<pre>";print_r($donnees);echo "</pre>";
tu verras alors ce que contient le tableau retour de ta requête
ensuite
tu enlèves les adresse ip dont le timestamp est < 5mn ce laps de temps n'est peut être pas assez long et donc tu enlèves tout sauf toi !
devant la ligne que tu ne comprends pas ajoutes :
echo "<pre>";print_r($donnees);echo "</pre>";
tu verras alors ce que contient le tableau retour de ta requête
ensuite
tu enlèves les adresse ip dont le timestamp est < 5mn ce laps de temps n'est peut être pas assez long et donc tu enlèves tout sauf toi !
bonjour,
alors déjà je vais modifier un peu le select, le insert et le update
ensuite pour $donnees['nbre_entrees'], c'est le count(*) qui est nommé nbre_entrees
regarde
alors déjà je vais modifier un peu le select, le insert et le update
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip='". $_SERVER['REMOTE_ADDR']."'");
mysql_query("INSERT INTO connectes (ip, timestamp) VALUES('".$_SERVER['REMOTE_ADDR']."', '".time()."') );
mysql_query("UPDATE connectes SET timestamp=". time() ." WHERE ip='".$_SERVER['REMOTE_ADDR']."' );
ensuite pour $donnees['nbre_entrees'], c'est le count(*) qui est nommé nbre_entrees
regarde
SELECT COUNT(*) AS nbre_entreesAS veut dire ALIAS cad renommé