begin process at 2010 03 21 19:11:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

SQL

 > COMPTEUR DE VISITE ET DE CONNEXION

COMPTEUR DE VISITE ET DE CONNEXION


 Information sur la source

Note :
8,43 / 10 - par 7 personnes
8,43 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :SQL Niveau :Initié Date de création :09/04/2005 Date de mise à jour :09/04/2005 12:06:42 Vu / téléchargé :11 806 / 1 264

Auteur : p3x

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

 Description

Cliquez pour voir la capture en taille normale
Ce compteur est très simple et permet d'identifier facilement les utilisateurs par leur adresse ip.
Il affiche l'heure et la date, l'adresse ip de l'utilisateur, le nombre de visiteurs total, le nombre de visiteurs par jour, et le nombre de visiteurs connectés.
Il dépend de 2 tables sql qui se vident automatiquement tous les jours pour éviter une surcharge de la BDD ainsi qu'un nombre d'adresses ip relevé trop important.
Téléchargez le zip si vous souhaitez l'avoir en entier.

petit test ici => http://p3drix.free.fr/count/

Source

  • .: Création sql :.
  • create table count_adr (
  • id int(11) NOT NULL auto_increment,
  • date text,
  • date2 text,
  • adr_ip text,
  • PRIMARY KEY (id), KEY id (id), UNIQUE id_2 (id) );
  • create table count_global (
  • id int(11) NOT NULL auto_increment,
  • count text,
  • PRIMARY KEY (id), KEY id (id), UNIQUE id_2 (id) );
  • INSERT INTO count_global(count) VALUES('0');
  • ____________________________________________________________________
  • .: Fichier conf.php3 :.
  • <?
  • $serveur=" ";
  • $user=" ";
  • $password=" ";
  • $base=" ";
  • ?>
  • ____________________________________________________________________
  • .: Cette page sera renommée en ce que vous voulez (vous pouvez vous en servir en include) :.
  • <table border="0" background="fond1.gif" width="197" height="101">
  • <tr>
  • <td><font size="1" face="verdana"><p align="center">
  • <?PHP
  • include 'conf.php3';
  • $date = date("d/m/Y H:i");
  • echo $date;
  • echo "<br>";
  • $date2 = date("i");
  • $date = date("d");
  • $ip = $_SERVER['REMOTE_ADDR'];
  • echo "Votre ip : ";
  • echo $ip;
  • echo "<br><br>";
  • $connexion = mysql_connect($serveur,$user,$password);
  • $db = mysql_select_db($base, $connexion);
  • $sql = "DELETE FROM count_adr WHERE date!='$date'";
  • $req = mysql_query($sql) or die('Erreur SQL !
  • '.$sql.'
  • '.mysql_error());
  • $sql = "SELECT * FROM count_global";
  • $req = mysql_query($sql) or die('Erreur SQL !
  • '.$sql.'
  • '.mysql_error());
  • while($data = mysql_fetch_array($req))
  • {
  • $count = $data['count'];
  • $count = $count+1;
  • }
  • $sql = "SELECT * FROM count_adr";
  • $req = mysql_query($sql) or die('Erreur SQL !
  • '.$sql.'
  • '.mysql_error());
  • while($data = mysql_fetch_array($req))
  • {
  • if ($data['adr_ip'] == $ip)
  • {
  • $more = 1;
  • }
  • }
  • if ($more == 0)
  • {
  • $sql = "UPDATE count_global SET count='$count'";
  • mysql_query($sql)
  • or die('Erreur SQL !'.$sql.'
  • '.mysql_error());
  • $sql = "INSERT INTO count_adr(date,adr_ip,date2)
  • VALUES('$date','$ip','$date2')";
  • mysql_query($sql)
  • or die('Erreur SQL !'.$sql.'
  • '.mysql_error());
  • }
  • $sql = "SELECT * FROM count_global";
  • $req = mysql_query($sql) or die('Erreur SQL !
  • '.$sql.'
  • '.mysql_error());
  • while($data = mysql_fetch_array($req))
  • {
  • echo $data['count'];
  • echo " visiteurs au total<br>";
  • }
  • $sql = "SELECT count(adr_ip) AS adresse FROM count_adr WHERE date='$date'";
  • $query = mysql_query($sql);
  • $req = mysql_query($sql) or die('Erreur SQL !
  • '.$sql.'
  • '.mysql_error());
  • while ($data = mysql_fetch_array($query))
  • {
  • echo $data['adresse'];
  • echo " visiteur(s) aujourd'hui<br>";
  • }
  • $sql = "UPDATE count_adr SET date2='$date2' WHERE adr_ip='$ip'";
  • mysql_query($sql)
  • or die('Erreur SQL !'.$sql.'
  • '.mysql_error());
  • $sql = "SELECT count(adr_ip) AS adresse FROM count_adr WHERE date2='$date2'";
  • $query = mysql_query($sql);
  • $req = mysql_query($sql) or die('Erreur SQL !
  • '.$sql.'
  • '.mysql_error());
  • while ($data = mysql_fetch_array($query))
  • {
  • echo $data['adresse'];
  • echo " visiteur(s) connecté(s)";
  • }
  • ?>
  • </font></td>
  • </tr>
  • </table>
.: Création sql :.

create table count_adr (
id int(11) NOT NULL auto_increment,
date text,
date2 text,
adr_ip text,
PRIMARY KEY (id), KEY id (id), UNIQUE id_2 (id) );

create table count_global (
id int(11) NOT NULL auto_increment,
count text,
PRIMARY KEY (id), KEY id (id), UNIQUE id_2 (id) );

INSERT INTO count_global(count) VALUES('0');


____________________________________________________________________


.: Fichier conf.php3 :.

<?

$serveur=" ";
$user=" ";
$password=" ";
$base=" ";

?>


____________________________________________________________________


.: Cette page sera renommée en ce que vous voulez (vous pouvez vous en servir en include) :.


<table border="0" background="fond1.gif" width="197" height="101">
	<tr>
		<td><font size="1" face="verdana"><p align="center">
<?PHP

include 'conf.php3';
$date = date("d/m/Y H:i");
echo $date;
echo "<br>";

$date2 = date("i");
$date = date("d");
$ip = $_SERVER['REMOTE_ADDR'];

echo "Votre ip : ";
echo $ip;
echo "<br><br>";

$connexion = mysql_connect($serveur,$user,$password);
$db = mysql_select_db($base, $connexion);

$sql = "DELETE FROM count_adr WHERE date!='$date'";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

$sql = "SELECT * FROM count_global";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
while($data = mysql_fetch_array($req)) 
{
$count = $data['count'];
$count = $count+1;
}
$sql = "SELECT * FROM count_adr";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
while($data = mysql_fetch_array($req)) 
{
if ($data['adr_ip'] == $ip)
{
$more = 1;
}
}
if ($more == 0)
{
$sql = "UPDATE count_global SET count='$count'";
mysql_query($sql) 
or die('Erreur SQL !'.$sql.'
'.mysql_error());

$sql = "INSERT INTO count_adr(date,adr_ip,date2)
VALUES('$date','$ip','$date2')";
mysql_query($sql) 
or die('Erreur SQL !'.$sql.'
'.mysql_error());
}
$sql = "SELECT * FROM count_global";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
while($data = mysql_fetch_array($req)) 
{
echo $data['count'];
echo " visiteurs au total<br>";
}
$sql = "SELECT count(adr_ip) AS adresse FROM count_adr WHERE date='$date'";
$query = mysql_query($sql);

$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
while ($data = mysql_fetch_array($query))
{
echo $data['adresse'];
echo " visiteur(s) aujourd'hui<br>";
}
$sql = "UPDATE count_adr SET date2='$date2' WHERE adr_ip='$ip'";
mysql_query($sql) 
or die('Erreur SQL !'.$sql.'
'.mysql_error());

$sql = "SELECT count(adr_ip) AS adresse FROM count_adr WHERE date2='$date2'";
$query = mysql_query($sql);

$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
while ($data = mysql_fetch_array($query))
{
echo $data['adresse'];
echo " visiteur(s) connecté(s)";
}

?>
</font></td>
	</tr>
</table>


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

09 avril 2005 12:06:42 :
mise à jour

 Sources du même auteur

Source avec Zip Source avec une capture PORTAIL WEB, CMS OU SITE PARAMETRABLE
BANNIR UN UTILISATEUR PAR COOKIE
Source avec Zip CHAT N'UTILISANT PAS IRC
Source avec Zip LE JEU DU WALKER
Source avec une capture GALERIE PHOTO TRES SIMPLE

 Sources de la même categorie

Source avec Zip Source avec une capture CRÉER ET ETABLIR UNE PAGE DE MAINTENANCE POUR X HEURES par popolino0
Source avec Zip Source avec une capture ENREGISTRER ET AFFICHER UN BLOB (MYSQL) par jmpicot
SEARCH QUERY COMPOSER par Centauriel
COMPTEUR DE VISITEUR : PHP ET MYSQL par didguess
Source avec Zip SQLAL : CLASSE SQL POUR MYSQL, MYSQLI, SQLITE, SQL SERVER, E... par Boris090

Commentaires et avis

Commentaire de HistodeX le 09/04/2005 12:26:17

Trop d'la balle ce truc merci p3x ;)

Commentaire de malalam le 09/04/2005 12:51:22 administrateur CS

Hello

Ta base n'est pas super optimisee (int 11 ? text ? tu es optimiste...).
Tes requetes non plus (select *), et il y en a beaucoup quand meme.
Et ton html est a corriger un tout petit peu :-)
Et mysql_fetch_array n'est pas le meilleur choix non plus.
Vla.

Commentaire de Anthomicro le 09/04/2005 12:51:48

Salut,

regarde celui-ci : http://www.phpcs.com/code.aspx?ID=28282

Commentaire de p3x le 12/04/2005 17:48:58

erf les gens nivo visuel et rentabilité c ski fo...
apres le script en lui meme on sen fou de savoir si une fonction est mieu kune autre si le résultat est le meme

Commentaire de Anthomicro le 14/04/2005 17:56:19

"apres le script en lui meme on sen fou de savoir si une fonction est mieu kune autre si le résultat est le meme"

MDR

Commentaire de malalam le 14/04/2005 19:32:51 administrateur CS

Ben justement, non...
mais tu t'en rendras compte plus tard si tu bosses dans le developpement web, ou si tu fais de gros projets...

Commentaire de p3x le 14/04/2005 23:28:02

j'aimerai que ce que tu dis m'arrive malalam mais la programmation je m'y suis mis tout seul et je pense que ca va rester pendant pas mal de temps qu'une de mes passions car cette année c'est le bac ES pour moi et vue que j'ai rien suivi depuis le début de l'année ca va etre cho =(

Commentaire de Anthomicro le 15/04/2005 00:05:07

LOL

Commentaire de p3x le 15/04/2005 10:12:57

MDR, LOL...
vari ton vocabulaire et montre nous pourquoi tu es joyeux comme ca =)
je ne voi pas ski ya de drole

Commentaire de Anthomicro le 15/04/2005 17:02:41

Moi par contre je vois ce qu'il y a de drôle...

A savoir que tu n'as rien suivi depuis le début de l'année...

Commentaire de p3x le 15/04/2005 19:01:56

je n'ai pas non plus envi de rester cloitré chez moi désolé...
je suis un de ceux ki profite de la jeunesse : dsl mais je préfère sécher et méclaté entre pote plutot ke resté en cour et dormir et resté cloitré tout le tps ché moi devant mon pc a rien savoir foutre...

Commentaire de Anthomicro le 15/04/2005 19:05:45

En tout cas c'est une belle preuve de maturité, t'as redoublé, ne redouble pas une seconde fois...

Après je vois pas en quoi suivre en cours t'empêche de sortir (faudra m'expliquer)...

Commentaire de p3x le 15/04/2005 19:48:35

lol c chiant les discour en temps indirect,
donc si tu ve je te passe mon msn...

Commentaire de Anthomicro le 15/04/2005 20:01:04

J'ai pas MSN (j'aime pas ce logiciel ni ce protocole...) lol

Commentaire de p3x le 15/04/2005 23:38:20

erf pour une foi ke kelkun est dacor sur ce point... mais moi je suis bien obligé de lutilisé puiske tout mes amis lutilise =(

Commentaire de Anthomicro le 15/04/2005 23:47:08

ouais bah moi perso tous mes potes aussi, mais je m'en fous...

Commentaire de viran le 01/05/2005 19:07:08

Anthomicro scuse mais tes "MDR" "LOL" c'est un peu soulant a la fin!!

Moi j'ai une question comment tu fais pour que ta table se vide automatiquement a une heure définie?

Commentaire de Anthomicro le 01/05/2005 21:36:25

Je suis vraiment désolé ^^

bref pour ta question : www.webcron.org

Commentaire de p3x le 03/06/2005 13:24:58

nan anthomicro c plus simple ke ca,
dès kun visiteur vien sur le site, le script compare la date à lakel il se connecte(date d'aujourd'hui) avec celle de tout les autres derniers visiteurs inscrits dans la table.
comme ca, si celles ci sont différentes, on suprime alors toutes les ip ki n'ont pas une date correspondant à celle du visiteur ki vien de se connecter.

Commentaire de Anthomicro le 03/06/2005 14:01:10

La question était :

"comment tu fais pour que ta table se vide automatiquement a une heure DEFINIE ?"

Bref une heure définie, c'est pas avec un visiteur passant sur le site que tu vas l'avoir, il te faut une crontab, et donc à défaut passer par webcron :-)

a+

Commentaire de MrSURPRISE le 12/07/2005 17:13:23

salut,
vous etes completement droles les gars !!! hhhh
bon, esq vous pouvez me filer l'url de CS pour JAVA ??
merci d'av.

Commentaire de Anthomicro le 12/07/2005 17:16:35

www.javafr.com (un peu de recherche dans les menus à gauche hein...)

Commentaire de ludovicanceaux le 05/08/2005 00:26:32

slt je débute en PHP et j'orai voulu savoir si il etait possible de remettre à zéro le compteur à un chiffre donné ex: au bout de 50 visites, merci!!!

Commentaire de p3x le 05/08/2005 11:24:01

Bien sur.
pour ca tu dois juste interroger la table count_global avec une requette SQL du style :

$sql = "SELECT * FROM count_global";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
while($data = mysql_fetch_array($req))
{
$count = $data['count'];
}

tu récupère alors ta variable $count et tu peux remettre le compteur à 0 si celle ci est supérieur ou égale à 50 :

if ($count >= 50)
{
$sql = "UPDATE count_global SET count='0'";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());
}

voila =)

Commentaire de ludovicanceaux le 07/08/2005 11:58:38

oki je te remercie, mais dis moi tu met cette portion de code ou exactement????

Commentaire de ludovicanceaux le 07/08/2005 11:59:14

oki je te remerci, mais tu met cette portion de code ou exactement????

Commentaire de ludovicanceaux le 07/08/2005 13:11:46

et dis moi je n'ai fai encore aucune modification, mais pk ca me mark "Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /www/sites/1/ifrance.com/b/i/bingomago/site/index.php on line 25", c bizarre car la date et l'adresse IP fonctionne correctement, il y a que le nb de visites ki délire!!!!

Commentaire de ludovicanceaux le 07/08/2005 13:16:10

nan, rectification, ca me mark "Warning: mysql_connect(): Lost connection to MySQL server during query in "

Commentaire de p3x le 07/08/2005 20:29:35

cette portion tu la mé dans le meme code ke le compteur sinon pour ton erreur vérifie té propriété de connexion dans conf.php3

Commentaire de ludovicanceaux le 07/08/2005 21:40:47

c ce ke j'ai fai mai je ne sai pô koi mettre sur la ligne "$base=" c koi c l'arborescence de la base mysql????

Commentaire de p3x le 09/08/2005 20:18:54

bah non c le non de ta base de donnée (souvant le meme nom ke le pseudo)

Commentaire de ludovicanceaux le 12/08/2005 13:19:44

mais c bizarre car je me souviens pas avoir donné de nom à ma base de donnée, car en fait je n'ai vraiment rien modifié à ta source!!!!!

Commentaire de ludovicanceaux le 13/08/2005 21:31:24

slt, bon là je dois être un peu chiant, mais comment fait on pour connaitre le nom de ma base de donnée

Commentaire de p3x le 13/08/2005 22:54:36

tu cherches ou tu demande à ton hébergeur

Commentaire de ludovicanceaux le 14/08/2005 11:33:17

ca y est en fait je pense savoir pk c ifrance, ils ne doivent pô pouvoir gérer les bases de données, merci!!!!!

Commentaire de ludovicanceaux le 27/09/2005 21:30:34

source pas mal, mais ca mank grav de commentaires, à koi bon la poster ici si tu ne pose pô de commentaires!!!!!

Commentaire de skydro le 15/01/2010 23:09:56 8/10

Salut, bien instructif ton code c'est normal qu'il paine 'a marcher 'a l'heure actuelle il est fait en PHP3, il pressente des prob'emes quand vous l'installez
dans un site FAI avec serveur en PHP5 (sfr, neuf, free, ci...), le faite que il soit s'equentiel (coup par coup) il encombre le serveur de base de donn'ees;
j'ai fait un transtypage en utilisant la lib. PDO du PHP5 et plus, bon il faut multiplier les variables car la PDO traite tout d'un coup en ouvrant un sockt avec la DB et balance les requettes  SQL...en tout cas merci p3x.. c'est nettement plus facile quand on part d'une base. Voici mon site o'u j'utilse ce compteur: http://sansali.perso.sfr.fr

 Ajouter un commentaire




Nos sponsors


Sondage...

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,515 sec (4)

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