Page 1 sur 1

compteur de visiteur unique

Posté : 22 févr. 2006, 22:40
par ludodoludujodu
Bonjour, je ne suis pas débutant en php mais je ne suis pas un expert, j'ai fais ce code:
<?php
mysql_connect($host,$login,$passe);
mysql_select_db($base);

$date_today = date('d/m/Y'); 
$ip_courante = $_SERVER['REMOTE_ADDR'];
SELECT * FROM compteurs WHERE ip='$ip_courante' AND date='$date_today' 

$req = mysql_query('SELECT * FROM compteurs WHERE ip='$ip_courante' AND date='$date_today'); 
$nb_entries = mysql_num_rows($req);

if($nb_entries != 1)
{
$sql = "INSERT INTO compteurs VALUES('$ip_courante','$date_today')";
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error()); 
// on insére l'ip et la date si elle n'est pas déjà entrée (l'ip)

$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM compteurs');
$donnees = mysql_fetch_array($retour);
// on compte le nombre d'entrée dans la table

// affiche le nombre de visiteurs
echo 'Vous êtes le visiteur n° ' . $donnees['nbre_entrees'] . '.';
}
else
{
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM compteurs');
$donnees = mysql_fetch_array($retour);
// on compte le nombre d'entrée dans la table

// affiche le nombre de visiteurs
echo 'Vous êtes le visiteur n° ' . $donnees['nbre_entrees'] . '.';
}

?>


mais je ne suis pas sur du résultat ( en fait le code ci-dessus devrait vérifier si l'ip du visiteur n'est pas dans la table mysql pour le jour en cours et si elle n'y est pas il l'insére et il compte le nombre d'entrée dans la table, cela donne le nombre de visiteur). Merci d'avance pour vos réponses

Posté : 22 févr. 2006, 22:43
par Dom!
C'est quoi la question ou le probleme ? :shock:

Balises PHP quand tu nous tiens !!!

Posté : 22 févr. 2006, 22:46
par ludodoludujodu
Bun la question c'est est-ce correct et le problème je veux que l'on me dise s'il y en a un

Posté : 22 févr. 2006, 22:48
par HD
difficile de tester chez soi quand on n'a pas la base de données. tu l'as ecrit toi meme ?
essaie de le tester et s'il y a des messages d'erreur montre les nous et on verra ensemble...

Posté : 22 févr. 2006, 22:56
par ludodoludujodu
là j'ai "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''22/02/2006' at line 1" :)

Posté : 22 févr. 2006, 22:58
par ludodoludujodu
J'ai oublié de dire, j'ai modifié mon code:
<?php
// Connexion à MySQL
include("config.php");
mysql_connect($host,$login,$passe);
mysql_select_db($base);

//annonce des variables
$date_today = date('d/m/Y'); 
$ip_courante = $_SERVER['REMOTE_ADDR'];

// compte le nombre de foi que l'ip et la date du jour sont entrées
$req = mysql_query("SELECT * FROM compteurs WHERE ip='$ip_courante' AND date='$date_today") or die(mysql_error());
$nb_entries = mysql_num_rows($req);

// si la valeur renvoyée n'est pas égale a 1
if($nb_entries != 1)
{
// on insére l'ip et la date si elle n'est pas déjà entrée (l'ip)
$sql = "INSERT INTO compteurs VALUES('$ip_courante','$date_today')";
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error()); 

// on compte le nombre d'entrée dans la table
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM compteurs');
$donnees = mysql_fetch_array($retour);

// affiche le nombre de visiteurs
echo 'Vous êtes le visiteur n° ' . $donnees['nbre_entrees'] . '.';
}
else
{
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM compteurs');
$donnees = mysql_fetch_array($retour);
// on compte le nombre d'entrée dans la table

// affiche le nombre de visiteurs
echo 'Vous êtes le visiteur n° ' . $donnees['nbre_entrees'] . '.';
}

// On ferme la connection
mysql_close();
?> 

Posté : 22 févr. 2006, 23:02
par HD
deja
("SELECT * FROM compteurs WHERE ip='$ip_courante' AND date='$date_today' ") 
au lieu de
("SELECT * FROM compteurs WHERE ip='$ip_courante' AND date='$date_today") 

Posté : 22 févr. 2006, 23:05
par ludodoludujodu
là sa a l'air d'être bon merci