begin process at 2010 03 22 04:29:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > COMPTEUR DE VISITE

COMPTEUR DE VISITE


 Information sur la source

Note :
6,57 / 10 - par 7 personnes
6,57 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Débutant Date de création :08/02/2003 Date de mise à jour :08/02/2003 22:31:41 Vu :18 100

Auteur : matious

Ecrire un message privé
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Ce script PHP concerne un compteur de visite utilisant 2 tables MySql.
Une se nommant compteur avec une zone compteur de type entier.
Une table visite avec 2 zones : ip (caract) et heure (caract)
Le compteur ne s'incrémente que si le visiteur n'est pas encore venu sur le site ou aprés un décalage de 24h par rapport à sa derniére visite.

Le script contient également une épuration de la db ...

Pour toutes questions envoyez un mail à m.demarez@skynet.be
Bonne amusement

Source

  • <?php
  • /*paramètre*/
  • $longueur_compteur=6;//nombre de chiffres de votre compteur
  • $zero="<img src='../../php/counter/gif/0.gif' border'0'>";//chemin des images
  • /*Inclusion du fichier de connexion à la db*/
  • include("../../php/connexion.php");
  • /*Récupération de l'heure en cours*/
  • $heure_act = date("YmdHis");
  • /*Récupération du nombre de viiteurs*/
  • $sql = "select compteur from compteur";
  • $result = mysql_db_query($database,$sql,$connect_db) or die('recuperation impossible');
  • $compteur = mysql_result($result,0, 'compteur');
  • /*Suppression des visites de plus de 10000 secondes*/
  • $sql = "delete from visite where heure < $heure_act-10000";
  • mysql_db_query($database,$sql,$connect_db) or die('suppression impossible');
  • /*on regarde si le visiteur est déjà venu*/
  • $sql = "select heure from visite where ip='$REMOTE_ADDR'";
  • $result = mysql_db_query($database,$sql);
  • /*Si pas encore de visite, sauvegarde de son ip et del'heure de connexion*/
  • if (mysql_num_rows($result) == 0)
  • {
  • $heure = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
  • $sql = "insert into visite(ip,heure) values('$REMOTE_ADDR','$heure_act')";
  • mysql_db_query($database,$sql,$connect_db) or die("insertion impossible");
  • $compteur=$compteur+1;
  • $sql = "update compteur set compteur = $compteur";
  • mysql_db_query($database,$sql,$connect_db) or die("maj impossible");
  • }
  • /*fermeture de la connexion à la db*/
  • @mysql_close($log);
  • $i=strlen($compteur);//nouvelle longueur
  • for ($w=0;$w<$i;$w++){
  • $chiffre=substr($compteur,$w,1).".";//extraction chiffre + .
  • $chiffre=ereg_replace("0.",$chiffre,$zero);//remplacement extension 0. par chiffre
  • $compteur_zero= $compteur_zero . $chiffre;//concaténation
  • }
  • echo "$compteur_zero";//affichage
  • ?>
<?php
/*paramètre*/
$longueur_compteur=6;//nombre de chiffres de votre compteur
$zero="<img src='../../php/counter/gif/0.gif' border'0'>";//chemin des images
/*Inclusion du fichier de connexion à la db*/
include("../../php/connexion.php");
/*Récupération de l'heure en cours*/
$heure_act = date("YmdHis");
/*Récupération du nombre de viiteurs*/
$sql = "select compteur from compteur";
$result = mysql_db_query($database,$sql,$connect_db) or die('recuperation impossible');
$compteur = mysql_result($result,0, 'compteur');
/*Suppression des visites de plus de 10000 secondes*/
$sql = "delete from visite where heure < $heure_act-10000";
mysql_db_query($database,$sql,$connect_db) or die('suppression impossible');

/*on regarde si le visiteur est déjà venu*/
$sql = "select heure from visite where ip='$REMOTE_ADDR'";
$result = mysql_db_query($database,$sql);

/*Si pas encore de visite, sauvegarde de son ip et del'heure de connexion*/
if (mysql_num_rows($result) == 0)
{
    $heure = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
	$sql = "insert into visite(ip,heure) values('$REMOTE_ADDR','$heure_act')";
    mysql_db_query($database,$sql,$connect_db) or die("insertion impossible");
	
	$compteur=$compteur+1;
    $sql = "update compteur set compteur = $compteur";
    mysql_db_query($database,$sql,$connect_db) or die("maj impossible");
}
/*fermeture de la connexion à la db*/
@mysql_close($log);

$i=strlen($compteur);//nouvelle longueur
for ($w=0;$w<$i;$w++){
 $chiffre=substr($compteur,$w,1).".";//extraction chiffre + .
 $chiffre=ereg_replace("0.",$chiffre,$zero);//remplacement extension 0. par chiffre
 $compteur_zero= $compteur_zero . $chiffre;//concaténation
 }
echo "$compteur_zero";//affichage
?>



 Sources de la même categorie

Source avec Zip Source avec une capture WINN GUESTBOOK FR par negstek76
Source avec Zip CHIFFRES EN LETTRES par zied9b
Source avec Zip Source avec une capture GRACENATUR V02 - CDMS: CONTAIN AND DESIGN MANAGMENT SYSTEM par sajaris
Source avec Zip SIMULBAL: SERVEUR POUR BALANCES ÉLECTRONIQUES DE LABORATOIRE... par laservert
Source avec Zip GESTION D'ESPACE MEMBRES par jmpicot

Commentaires et avis

Commentaire de totor54 le 22/06/2004 23:04:16

un peu bourrin mais c'est simple et efficace.
Et au moins ça marche !!
J'ai essayer plusieurs scripts qui géré ça avec les coockies et ça marchait pas.
Bien vu d'avoir pensé à cette solution !!!

Commentaire de faby38 le 07/07/2005 14:23:05

bonjour,
j'ai tester le code, qui m'a l'air assez bien (bien que je ne sois que debutante en php).
Il me mets une erreur et je ne comprends pas : Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 3 in c:\dati per stage\sito\cpt_visite.php on line 28

pouvez vous m'aider?

Commentaire de semifer le 20/10/2005 21:19:26

crée ta base de donnée lol

Commentaire de msdos1991 le 16/11/2005 20:27:22

Quelle doit être exactement la structure de la base de donnée ?

Commentaire de surfman le 22/05/2006 15:49:54

Le code en lui même fonctionne mais necéssite d'être amélioré, le compteur fonctionne bien mais pour quelques minutes et non 24h... ensuite il y a compteur et visite, visite ne se remplie jamais, à quoi sert-il ? à rien ou alors en modifiant le code on peut l'utiliser pour faire non seulement un compteur de visite mais aussi dire combien de personne sont actuellement sur le site.

Les requetes peuvent être beaucoup mieux simplifier :

Avant :

$sql = "delete from $tblvisite where heure < $heure_act-10000";
mysql_db_query($db,$sql,$serv) or die('Supression impossible.');

Aprés :

$sql = mysql_db_query($db,"delete from $tblvisite where heure < $heure_act-10000",$serv) or die('Supression impossible.');

Cordialement.

Commentaire de surfman le 22/05/2006 15:54:50

Je rajouterais aussi qu'il y a une erreur :

$sql = "select heure from $tblvisite where ip='$REMOTE_ADDR'";
$result = mysql_db_query($db,$sql);

Il manque $serv à la fin de mysql_db_query($db,$sql);

ou alors en simplifiant le code comme j'ai fait plus haut ce qui donne :

$sql =  mysql_db_query($db,"select heure from $tblvisite where ip='$REMOTE_ADDR'",$serv);

Cordialement

Commentaire de fleur2 le 30/05/2006 13:46:18

je voulais savoir, il parle de 2 tables : la première =>visite avec 2 zones : ip (caract) et heure (caract)
et la 2eme c'est quoi ?

(en détail merci )

Commentaire de surfman le 30/05/2006 16:00:37

en suivant son script :

Table ip + heure = met l'ip + l'heure de visite du visiteur sur le site, lorsque le visiteur va sur le site, le code php regarde si l'ip existe, si oui il n'incrémente pas, si non il ajoute l'ip du visiteur et l'heure de sa venu le compte et reste dans la base soit disant pendant 24h, au bout de 24h l'ip est effacé etc..etc.. c pour éviter que le compteur de visite s'incrémente de 1 en 1 lorsque un visiteur visite un site plusieurs fois dans la journée...

et l'autre table, c le compteur de visite...

bref y'a beaucoup de modif à faire

Commentaire de blinix123 le 31/05/2006 12:13:43

Le compteur ne s'incrémente que si le visiteur n'est pas encore venu sur le site ou aprés un décalage de 24h par rapport à sa derniére visite.
Comment tu fais pour le decalage, parceque il va sur ton site, il s'en va,il se deconnecte,son IP est donné a un autre internaute, donc se ce dernier va sur ton site, le compteur ne s'incremente pas...?

Commentaire de surfman le 31/05/2006 13:19:10

à la base quand tes en adsl ton ip est la même pendant 24/48h, et si tes dégroupé ta une ip fix donc à vie... et si tes en 56k ben l'ip change à chaque connexion/déconnexion.

il faudrait modifier ce compteur en y intégrant un cookie pendant 12h par exemple, si ce cookie existe alors on incrémente pas le compteur, sinon on incrémente...

j'aurais pensé au système ip + heure pour faire un compteur de visite online et non un compteur de visite par jour...
en modifiant le code, j'ai reussi à obtenir ce que je voulais...
et en y intégrant un cookie, on peut utilisé l'autre fonction du compteur de visite 1 par jour par le même ordinateur...

Ce code devrait être refait depuis le début, je pense que je vais le faire.

Commentaire de blinix123 le 31/05/2006 13:33:37

et tu postera le nouveau alors ^^

Commentaire de matious le 06/06/2006 21:19:18

Mon petit surfman si le script ne te plait pas fait le toi même ... Et si tu veux faire des remarques constructives postent un peu ton travail ...

Commentaire de frank_85 le 24/01/2008 19:47:21

j'ai une erreur sur la variable $REMOTE_ADDR:
Notice: Undefined variable: REMOTE_ADDR in c:\program files\easyphp1-8\www\temporaire\test_compteur.php on line 30

Commentaire de Jay77270 le 31/10/2008 11:44:58

Bonjour,
Voila je débute dans le script php mysql et j'aimerai vivement intégré un compteur de visite ah mon site j'ai utiliser se code php mais celui-ci m'affiche un message d'erreur :

Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\Site\compteur.php on line 15
recuperation impossible

J'aimerai que vous m'éclairer, je bloque sur ça enfaite.

J'ai créer une BDD avec 2 table
   Compteur type INT taille 6
   Visite qui contient Ip type VACHAR taille 15
                       Heure type DOUBLE

Commentaire de chihabmedo le 15/11/2008 11:59:24

merci de ce source je croi que il'est utile pour moi ,merci

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales