Vous n'êtes pas identifié(e).
Bonjour à tous,
Je possède un script que j'ai trouvé de compteur de visite. Le soucis, il compte plusieurs fois le même visiteur, en clair, il compte le nombre de pages vues...
$requete = mysql_query("select * from compteur_visite"); // On regarde si les données sont enregistrées ou non
$nb = mysql_numrows($requete); // Nombre d'enregistrement
if($nb ==0) // On regarde le nombre d'enregistement
{
mysql_query("insert into compteur_visite values('1')"); // si il y a 0 enregistrement on ajoute des données
}
else // sinon on passe
{
mysql_query("update compteur_visite set nb=nb+1"); // et on met à jour le nombre de visite
}
$requete = mysql_query("select * from compteur_visite"); // Sélection de la table
$j = mysql_fetch_array($requete); // et on affiche le nombre de visite
$nb = $j[nb];
print ''.$nb.'';
// On ferme la connection
mysql_close();
?>
J'aimerai donc le faire passer en compteur de visite unique. J'ai donc pensé utiliser des cookies tel que :
Création du COOKIES
Ensuite, j'avais pensé, dans le code du compteur mentionné en premier, faire de sorte a vérifier que si le cookies existe, alors je n'incrémente pas. Le cas contraire, j'incrémente.
J'ai donc essayé ainsi, cependant ca ne fonctionne pas (Warning: Cannot modify header information - headers already sent by (output started at /homepages/41/d418170838/htdocs/accueil.php:5) in /homepages/41/d418170838/htdocs/includes/cpt on line 3 - Ligne 3 étant la ligne ou je dit créer le cookie) :
<?php
$Connect_db = mysql_connect($Serveur_db,$User_db,$Passe_db); // Connection à MySQL
mysql_select_db($Base_name,$Connect_db); // Sélection de la base de donnée
$requete = mysql_query("select * from compteur_visite"); // On regarde si les données sont enregistrées ou non
$nb = mysql_numrows($requete); // Nombre d'enregistrement
if($nb ==0 and $_COOKIE["SCHILD_WEBSITE"] == 'OK') // On regarde le nombre d'enregistement
{
mysql_query("insert into compteur_visite values('1')"); // si il y a 0 enregistrement on ajoute des données
}
else // sinon on passe
{
mysql_query("update compteur_visite set nb=nb+1"); // et on met à jour le nombre de visite
}
$requete = mysql_query("select * from compteur_visite"); // Sélection de la table
$j = mysql_fetch_array($requete); // et on affiche le nombre de visite
$nb = $j[nb];
print ''.$nb.'';
// On ferme la connection
mysql_close();
?>
Pourtant, en essayant dans mon petit test ci-dessous, ca fonctionne :
L'erreur est-elle bête? lol
Merci par avance,
Fab.
Dernière modification par Fabdu57 (15-06-2012 17:01:12)
Hors ligne
Re le Forum,
Solution trouvée au final, j'avais fait deux erreurs :
La première, j'avais pas mis le code de cookie en début de page.
le code fonctionnel au final :
$requete = mysql_query("select * from compteur_visite"); // On regarde si les données sont enregistrées ou non
$nb = mysql_numrows($requete); // Nombre d'enregistrement
if($nb ==0) // On regarde le nombre d'enregistement
{
mysql_query("insert into compteur_visite values('1')"); // si il y a 0 enregistrement on ajoute des données
}
elseif ($nb !=0 and $_COOKIE["SCHILD_WEBSITE"] != 'OK') // sinon on passe
{
mysql_query("update compteur_visite set nb=nb+1"); // et on met à jour le nombre de visite
}
elseif ($nb !=0 and $_COOKIE["SCHILD_WEBSITE"] == 'OK') // sinon on passe
{
mysql_query("update compteur_visite set nb=nb"); // et on met à jour le nombre de visite
}
$requete = mysql_query("select * from compteur_visite"); // Sélection de la table
$j = mysql_fetch_array($requete); // et on affiche le nombre de visite
$nb = $j[nb];
print ''.$nb.'';
// On ferme la connection
mysql_close();
?>
Merci quand même
Hors ligne