Compteur simple avec mysql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 091 fois - Téléchargée 32 fois

Contenu du snippet

compteur simple avec une base mysql
il stocke l'ip et la date du jour.

requete pour creer la table:
CREATE TABLE 'compt' (
'ip' VARCHAR(14) NOT NULL,
'date' VARCHAR(8) NOT NULL
);

Source / Exemple :


<?

if(!file_exists("compteur.txt")) 	{//on vérifie si le fichier compteur.txt existe
  	$fp=fopen("compteur.txt",'w');
	fputs($fp,'0');//compteur vaut 0
	fclose($fp);}

$today=date("dmY");//date du jour	
$ip=$REMOTE_ADDR;//addresse IP
mysql_connect(localhost,root) or die("erreur");//connexion au serveur
mysql_select_db(test) or die("erreur");//selestion de la base de données
$req1=mysql_query("select date from compt where ip='$ip'");//on selectionne la colonne ip
$result1=mysql_fetch_array($req1);//on met le résultat dans un tableau
if(!empty($result1)){//si le tableau n'est pas vide (c'est a dire que l'ip est dans la table)
if (!in_array($today,$result1)){//on vérifie si la date correspondante est celle d'aujourd'hui
mysql_query("UPDATE compt SET date=$today WHERE ip='$ip'");//si c'est pas le cas, on la change
$fp=fopen('compteur.txt', 'r+');
$c=fread($fp,10000000);
$c++;//incrémentation du compteur
fseek($fp,0);
fputs($fp,$c);
}if (in_array($today,$result1)){exit;}//si la date du jour est dans le tableau on sort
exit;}

if(empty($test)){//si la table est vide on la rempli avec l'ip et la date du jour
mysql_query("INSERT INTO compt (ip,date) VALUES ('$REMOTE_ADDR','$today')");
$fp=fopen('compteur.txt', 'r+');
$c=fread($fp,10000000);
$c++;//incrémentation du compteur
fseek($fp,0);
fputs($fp,$c);
exit;}

$req3=mysql_query("select ip from compt");//on sélectionne la colonne ip
$result3=mysql_fetch_array($req3);//on met le résultat dans un tableau
if (!in_array($ip,$result3)){//si l'ip n'est pas dans le tableau
mysql_query("INSERT INTO compt (ip,date) VALUES ('$REMOTE_ADDR','$today')");//on insert l'ip avec la date
$fp=fopen('compteur.txt', 'r+');
$c=fread($fp,10000000);
$c++;//incrémentation du compteur
fseek($fp,0);
fputs($fp,$c);
 exit;}

?>

Conclusion :


jl'ai fais a l'arrache y'a 10min il se peut qu'il bug je regarderai

A voir également

Ajouter un commentaire

Commentaires

cs_brice57
Messages postés
15
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
15 avril 2004
-
dans ta requête de création de table tu mets ip VARCHAR(14). Mets le plutôt en VARCHAR(15) parce que si l'ip est par exemple 193.252.220.138 tu as 15 caractères --> plantage
mastervanou
Messages postés
56
Date d'inscription
vendredi 20 octobre 2000
Statut
Membre
Dernière intervention
13 octobre 2008
-
non une base de données n'est pas indispensable... au début je l'avais fait avec un fichier texte séparé par des ';'
mais c'était trop chiant
pour ce qui est du code je l'ai meme pas vraiment regardé quand je l'ai fait!
cs_Pentium4
Messages postés
43
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
26 octobre 2004
-
Pour pouvoir garder le nombre de visiteur il faut bien une base de donnée ?
je pense que mysql est le bon choix mais au niveau du code c'est un peu trop lourd ^^ :s
BeB3RePHPLover
Messages postés
23
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
3 septembre 2003
-
Pas mal pas mal mais jvoi pas linteret d'utiliser mysql...
un compteur se limite a un nombre de visite point.
defkrie
Messages postés
438
Date d'inscription
vendredi 20 septembre 2002
Statut
Membre
Dernière intervention
20 novembre 2004
-
tu repete certaines instructions alors qu'on peut faire plus simple mais bon bravo tout de meme.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.