8792 sujets

Développement web côté serveur, CMS

bonsoir
ma base de données est chez phpmyadmin.1and1.fr/

voila le code php sur une page .php (essais.php)



<?php
// Connexion à MySQL

mysql_connect(" ", "  ", " ");

mysql_select_db(" ")or die(mysql_error());


// -------
// 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 news WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$donnees = mysql_fetch_array($retour)or die(mysql_error());

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'] . '\'');
}

// -------
// 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 news');
$donnees = mysql_fetch_array($retour)or die(mysql_error());


// 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 le site !</p>';

?>


voila la fonction include dans mes pages

Code : PHP

<? include ('essais.php'); ?>


chez 1and1 j'ai bien ma base de donnes et ma table qui elle est "news"

sur les pages de mon site il y a bien "il y a actuellement 0 visiteurs connectees sur le site " mais le 0 ne bouge pas rien ne s'enregistre sur ma base
que peut il se passer?

patrick
Modifié par absalonp (10 Jan 2007 - 02:22)
Rien d'anormal. Si j'ai bien compris ta table news doit accueillir les différentes IP?
Alors pourquoi
mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');

Tu inseres dans la table connectes là qui évidemment n'existe pas.
Mais comme tu n'as pas mis de or die(mysql_error()) sur les deux lignes les plus importantes Smiley cligne

Voila change juste ça et ça marche Smiley smile