8795 sujets

Développement web côté serveur, CMS

Bonjour à tous ! Mon site est actuellement hébergé chez free et j'utilise la base de données MySQL de free ( http://phpmyadmin.free.fr ), jusque là tout va bien...
Voila mon problème : Je suis actuellement entrain de créé un système de news avec commentaires, il y a donc deux tables. A chaque fois que j'actualise mon site ces tables se remplissent automatiquement par exemple sur mon compteur de personne connectés sur mon site, a chaque fois que j'actualise ma page un visiteur se rajoute automatiquement dans ma table... Idem pour les news et les commentaires!
J'aimerai savoir si c'est déjà arrivé à quelqu'un et comment y remédier ... Smiley ohwell

Merci d'avance ! Smiley biggrin
Je n'ai pas tout à fait compris le problème...

Si ton problème est de ne compter qu'une fois chaque visiteur, alors sers toi des sessions pour vérifier qu'il n'est ajouté qu'un visiteur.


session_start();

if(!isset($_SESSION['premierevisite']))
{
$_SESSION['premierevisite']=true;
// ajouter 1 au compteur des visites
}


Mais je ne vois pas le rapport avec les news et commentaires...

De plus, si tu ne veux que compter les visiteurs passés sur ton site, inutile de créer une table juste pour ça !
... A moins que tu veuille faire des statistiques sur, par exemple, les heures/dates de connexion, ou autre... Smiley ravi
Modifié par icareo (22 May 2010 - 14:38)
Bonsoir,

Je ne pense pas que se soit la base de donnés qui créer un enregistrement toute seule.
Il doit y avoir quelque chose dans ton code qui provoque cela.

Smiley cligne
mdisc a écrit :
Bonsoir,

Je ne pense pas que se soit la base de donnés qui créer un enregistrement toute seule.
Il doit y avoir quelque chose dans ton code qui provoque cela.

Smiley cligne

+1

Rien n'arrive par hasard... vérifies pas à pas tous les éléments qui s'exécutent lors de l'appel à ta page, et pose toi la question s'il est juste qu'ils le fassent à ce moment.
Mais il est dur de t'aider sans connaitre ton code..
Voici mon code : Smiley smile

<?php
require('connecte.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)
{
mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');
}
else
{
mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
}

$timestamp_5min = time() - (60 * 5);
mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);

$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);


echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteur(s) connecté(s).</p>';
?>
Bonjour,

Quelle enregistrement est inséré dans ta table?

Tua s peut être ue confusion sur REMOTE_ADDR.
Contrôle la version de php que tu as sur free, si elle est inférieur à 4.3.0. il faut utiliser $HTTP_SERVER_VARS à la place de $_SERVER.

Smiley smile
Bonjour, je ne comprends pas trop ton problème mais on dirait qu'il y a plusieurs erreurs au niveau de tes requêtes, pas la structure mais la syntaxe. Bonne journée.