begin process at 2012 02 15 20:10:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > COMPTEUR JOURNAL DES VISITEURS AVEC LEUR IP ET LA DATE ET HEURE DE LEUR VISITE

COMPTEUR JOURNAL DES VISITEURS AVEC LEUR IP ET LA DATE ET HEURE DE LEUR VISITE


 Information sur la source

Note :
Aucune note
Catégorie :Application Classé sous :compteur, journal, visites, ip Niveau :Initié Date de création :12/11/2006 Date de mise à jour :24/06/2007 20:43:52 Vu :13 336

Auteur : keyloger666

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

 Description

Le code est tout bete il enregistre l'ip la date et l'heure de la visite  dans un fichiers txt un visiteur par ligne.
Il faut au prealable creer un fichier ip.txt vide sur le serveur au meme endroit que la page ou sera inséré le code.
En l'ouvrant avec un editeur ou les lignes sont numérotées on voit le nombres de visites.

Source

  • <?php
  • $date = date("l-d-m-Y");
  • $heure = date("H:i:s");
  • $fp = fopen("ip.txt", "a");;
  • fputs ($fp, "{ $_SERVER['REMOTE_ADDR'] } the $date at $heure \n");
  • fclose($fp);
  • ?>
  • /* on peut aussi le recevoir un mail chaque visite dans ce cas pas besoin de ip.txt */
  • <?php
  • $date = date("l-d-m-Y");
  • $heure = date("H:i:s");
  • mail('VOTREEMAIL@VOTREHEBERGEUR.com','Une nouvelle visite','{ $_SERVER['REMOTE_ADDR'] } the $date at $heure')
  • ?>
  • /* Celle ci permet de recevoir le fichier tout les mois il faut creer au prealable une table ip contenant un champ envoi et faire un I
  • NSERT INTO `ip` ( `envoi` , `cle` )
  • VALUES (
  • '', ''
  • ); */
  • <?php
  • $ipdate = date("l-d-m-Y");
  • $ipheure = date("H:i:s");
  • $ipfp = fopen("ip.txt", "a");;
  • $Fichier = "ip.txt";
  • $montexte = "";
  • $serveur = 'adresse du serveur'
  • $login = 'votrelogin'
  • $pswd = 'votre mot de passe'
  • $base = 'votrebase'
  • $date = date(d-m)
  • fputs ($ipfp, "{ $_SERVER['REMOTE_ADDR'] } the $ipdate at $ipheure \n");
  • fclose($ipfp);
  • mysql_connect($serveur, $login, $pswd)
  • mysql_select_db($base)
  • $rs = mysql_query("SELECT envoi FROM ip WHERE envoi = '".$date."';");
  • $nb = mysql_num_rows($rs);
  • if (date("d") = 28 && $rs=1) {
  • if ($rs = 0){
  • if (is_file($Fichier)) {
  • if ($TabFich = file($Fichier)) {
  • for($i = 0; $i < count($TabFich); $i++)
  • $montexte .= $TabFich[$i];
  • if (mail('theo.seguier@wanadoo.fr','Compteur de visites', $montexte)){
  • echo 'Mail envoyé';
  • mysql_query("UPDATE ip SET envoi = '".$date."'")
  • } else {
  • echo 'erreur dans l envoi du mail'; }
  • } else {
  • echo "Le fichier ne peut être lu...<br>"; }
  • } else {
  • echo "Désolé le fichier n'est pas valide<br>";}
  • }
  • }
  • ?>
<?php
$date = date("l-d-m-Y");
$heure = date("H:i:s");
$fp = fopen("ip.txt", "a");;
fputs ($fp, "{ $_SERVER['REMOTE_ADDR'] } the $date at $heure \n");
fclose($fp);
?>

/* on peut aussi le recevoir un mail chaque visite dans ce cas pas besoin de ip.txt */

<?php
$date = date("l-d-m-Y");
$heure = date("H:i:s");
mail('VOTREEMAIL@VOTREHEBERGEUR.com','Une nouvelle visite','{ $_SERVER['REMOTE_ADDR'] } the $date at $heure')
?>

/* Celle ci permet de recevoir le fichier tout les mois il faut creer au prealable une table ip contenant un champ envoi et faire un I
NSERT INTO `ip` ( `envoi` , `cle` )
VALUES (
'', ''
);   */

<?php
$ipdate = date("l-d-m-Y");
$ipheure = date("H:i:s");
$ipfp = fopen("ip.txt", "a");;
$Fichier = "ip.txt";
$montexte = "";
$serveur = 'adresse du serveur'
$login = 'votrelogin'
$pswd = 'votre mot de passe'
$base = 'votrebase'
$date = date(d-m)

fputs ($ipfp, "{ $_SERVER['REMOTE_ADDR'] } the $ipdate at $ipheure \n");
fclose($ipfp);

mysql_connect($serveur, $login, $pswd)
mysql_select_db($base)

$rs = mysql_query("SELECT envoi FROM ip WHERE envoi = '".$date."';");
$nb = mysql_num_rows($rs);

if (date("d") = 28 && $rs=1) {
	if ($rs = 0){
		if (is_file($Fichier)) {
			if ($TabFich = file($Fichier)) {
				for($i = 0; $i < count($TabFich); $i++)
					$montexte .=  $TabFich[$i];
						if (mail('theo.seguier@wanadoo.fr','Compteur de visites', $montexte)){
							echo 'Mail envoyé';
							mysql_query("UPDATE ip SET envoi = '".$date."'")
						} else {
							echo 'erreur dans l envoi du mail'; }
			} else {
				echo "Le fichier ne peut être lu...<br>"; }
		} else {
			echo "Désolé le fichier n'est pas valide<br>";}
	}
}

?>


 Conclusion

Voila maintenant il y a aussi un code pour un envoi a chaque fin de mois mais elle n'est pas testée si quelqu'un la teste se serait sympa de me dire si elle marche


 Historique

12 novembre 2006 12:57:16 :
ajout d'une fonction d'envoi a chaque fin de mois
16 novembre 2006 20:29:42 :
Sa y est j'ai modifié
19 novembre 2006 12:27:56 :
ok on oubli le mail a chake fin de mois c'est pas de mon ressort
24 juin 2007 20:43:52 :
Ajout d'une fonction d'envoi tout les mois.

 Sources du même auteur

PROTEGER UNE PAGE PAR MOT DE PASSE

 Sources de la même categorie

Source avec une capture PHPREPOGENERATOR + REPO (WIN) par alvinp
Source avec Zip IPHONE - ICÔNE D'APPEL TÉLÉPHONIQUE SUR L'ÉCRAN D'ACCUEIL par Rainbow
Source avec Zip Source avec une capture [APP WEB]SERVEUREXPLOREUR par thematrix01
Source avec Zip Source avec une capture MY.BOOKMARKS par inwebo
Source avec Zip M.V.C M.E.D par faceme

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COMPTEUR DE VISITES (HIT) PARAMÉTRABLE - RELEASE 2.0.0.A par sneezy
Source avec Zip Source avec une capture COMPTEUR DE VISITES AVEC LOCALISATION EN PHP/FLASH par XelectroX
Source avec Zip Source avec une capture COMPTEUR DE VISITES AVEC IMAGE PNG par lucas74
Source avec Zip COMPTEURS SIMPLE/IP/COOKIES par edotheking
Source avec Zip COMPTEUR DE VISITES (AVEC FCHIER), TRÈS SIMPLE D'UTILISATION par Gulius

Commentaires et avis

Commentaire de webdeb le 12/11/2006 13:10:59

Salut !

Voici plusieurs remarques qui me semblent nécessaires pour optimiser ton script :

1/ Une adresse IP n'est pas du tout fiable pour reconnaître un visiteur. Un cookie serait préféré bien qu'il ne soit pas fiable également pour obtenir des stats correctes.
2/ Pour récupérer une adresse IP, ce n'est pas $REMOTE_ADDR mais $_SERVER['REMOTE_ADDR']
3/ Les chaînes statiques sont à mettre en apostrophes et non guillemets
4/ Pour le test d'égalité de fin de mois, utilise 3 égals plutôt que 2. Ca permet de vérifier le type de la variable au passage.
5/ Apparemment le mail risque d'avoir plusieurs fois. Si on 200 visiteurs "uniques" ( = 200 IP différentes) accèdent le 30 ou 31 du mois courant. Ils vont lancer au total 200 email de rapport. Ce n'est pas fiable de faire comme ça. Il vaut mieux passer par un autre script qui est appellé tous les 30 ou 31 du mois par un cron.

++

Commentaire de JulioDelphi le 13/11/2006 13:30:30 administrateur CS

salut
pourquoi mettre 2 fois :
# $date = date("l-d-m-Y");
# $heure = date("H:i:s");
# $fp = fopen("ip.txt", "a");
# fputs ($fp, "{ $REMOTE_ADDR } the $date at $heure \n");
# fclose($fp);

ça entre tout en double, non ??
et si j'ai : fopen("ip.txt", "a");
pourquoi j'ai ensuite : $path = 'chemin/ip.txt';
le chemin a changé tout seul :O

et puis ya ";;" a la fin de fopen("ip.txt", "a");; au lieu d'un seul

a bientot

Commentaire de kankrelune le 13/11/2006 18:06:55

A noter aussi qu'il ne faut pas se baser uniquement sur $_SERVER['REMOTE_ADDR'] pour récupérer l'ip de l'internaute sinon les résultats seront faussés... s'il y a 10 internautes derrière le même proxy ils seront contés comme une seule et même connection... .. .

@ tchaOo°

Commentaire de keyloger666 le 16/11/2006 20:30:32

ben si deux personne se connecte avec la meme ip a cause d'un proxy ( ce qui n'arive pas souvent) elle sera enregistré quand meme

Commentaire de codefalse le 17/11/2006 12:14:11 administrateur CS

5/ Apparemment le mail risque d'avoir plusieurs fois. Si on 200 visiteurs "uniques" ( = 200 IP différentes) accèdent le 30 ou 31 du mois courant. Ils vont lancer au total 200 email de rapport. Ce n'est pas fiable de faire comme ça. Il vaut mieux passer par un autre script qui est appellé tous les 30 ou 31 du mois par un cron.
--> et inversement si personne ne se connecte le 30 ... :p
Pourquoi pas utiliser une base de donnée ?
comme ca à la fin du mois, le script d'envoi d'email ne prends que les valeurs donnée dans par la base de donnée sur la période actuelle (le mois par ex), du coup, tu conserve tout, et en meme temps t'a juste a faire un select *, ensuite un mysql_num_rows et tu connais le nombre de visiteurs depuis le début, ou tu fait un where date > "quand tu veux" et tu peux savoir combien t'a eu de visiteurs depuis un jour, une semaine, un mois, un an, etc, c'est vraiment plus flexible.

Autre probleme, si t'a 200 visiteurs par jours, quand t'envera ton fichier, t'aura un petit probleme de taille ... :p
Apres pour l'histoire de reconnaitre un visiteur unique j'ai pas trop d'idée sur quelle est la meilleur solution ... si yen a un qui en a une bonne :p

Commentaire de webdeb le 17/11/2006 12:22:13

>> tu conserve tout, et en meme temps t'a juste a faire un select *,

On ne fait pas se SELECT * mais on liste les champs. C'est plus propre, plus optimisé et surtout plus clair pour la maintenance du code.

>> Ensuite un mysql_num_rows et tu connais le nombre de visiteurs depuis le début

Tu peux aussi faire un SELECT COUNT(champ) AS nombre FROM table WHERE condition

++

Commentaire de codefalse le 17/11/2006 13:36:53 administrateur CS

comment ca on liste les champs ?
pour lister les champs dans mysql il faut bien que tu les choisissent non ?
donc un select ?
Select * From table

si tu pourrais m'expliquer d'avantage car là je seche un peu sur ta reflexion

Commentaire de JulioDelphi le 17/11/2006 13:58:22 administrateur CS

il veux dire un "select champ1, champ2, champ3" plutot qu'un "select *" expéditif

Commentaire de kankrelune le 17/11/2006 15:02:59

"si tu pourrais m'expliquer d'avantage car là je seche un peu sur ta reflexion"

Faire une "SELECT champ1, champ2, champ3" plutot qu'un "SELECT *" a 3 avantage pour un inconvénient... .. .

Avantages :

- Une maintenance du code plus clair car tu sais quels champs sont demandés...

- un traitement par mysql plus rapide car elle sait quels champs renvoyer et n'a donc pas besoin de faire au préalable une recherche sur la structure de la table...

- un gain de mémoire car les informations traitées par la suite avec php sont juste celles dont tu as besoin...

Inconvénient :

- si tu change la structure de ta table tu dois modifier tes requetes...

@ tchaOo°

Commentaire de codefalse le 18/11/2006 12:08:49 administrateur CS

oué ok, alors à ce moment je tiens à m'excuser, quand j'ai di select *, c'était pour aller plus vite, mais c'est vrai que finalement c'était pas plus intelligent d'essayer d'aller vite ... :p mais dans l'idée je pensais bien à lister les valeurs nécéssaires à prendre et pas un select *...
voila :)

Ensuite :
>> >>Ensuite un mysql_num_rows et tu connais le nombre de visiteurs depuis le début
>>Tu peux aussi faire un SELECT COUNT(champ) AS nombre FROM table WHERE condition

C'est quoi le mieux ?

Commentaire de kankrelune le 18/11/2006 15:20:45

tout dépend du context en fait...

Si tu fais un déja select autant utiliser mysql_num_rows ce qui t'évitera de faire une requete en plus à mysql... .. .

Si tu ne fais pas de select au préalable et que tu veux juste récupérer le nombre d'entrée SELECT COUNT(champ)... s'impose... .. .

@ tchaOo°

Commentaire de amin_2005 le 09/05/2007 10:07:57

merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Compteurs de visites et Google Bot [ par MadM@tt ] Salut à tous,Voilà j'ai récemment installé des compteurs divers sur un site (Xiti gratuit, compteur de visites principal et compteur de téléchargement Compteur visites avec memorisation [ par must ] Salut,comment faire un compteur de visites qui pourrait reconnaitre le visiteur qui est deja venuJe m'explique:a la premiere visite le compteur s'incr compteur de visites [ par choup ] voilà j'ai repéré sur ce site des compteurs de visite et je cherche celui qui serait le plus simple à mettre en place mais efficace quand même.S'il es Compteur de visites avec Flash5 [ par must ] Salut,comment faire un compteur de visites avec flash5 et PHPSoit avec un fichier texte,ou base de donnéesCompteur qui ne doit s'incrémenter une seule Compteur de visites unique [ par must ] Salut comment faire un compteur de visites qui pourrait compter une seule fois la visite d'une page,c'est à dir si la personne reviens dix fois sur la Compteur par ip [ par stanilou ] Salut,Donc mon post conserne le compteur par ip !En fait moi je lis l'ip des visteurs... Si elle deja dans mon fichier cotenant toute les ip, je ne fa Compteur "qui est en ligne" [ par sebmayer ] Bonjour ! Voila j'ai un probl&#232;me avec mon "Qui est en ligne" Celui ci compte les adresses ip diff&#233;rentes, mais le probl&#232;me c'est que Adresse ip + compteur [ par lugdanum ] Bonjour tout le monde Pourriez-vous m'aider un peu en me disant ce qui ne marche pas dans mon code? : <? $table = "NomDeMaTable"; $user = "User"; $pa bombre de connectés, compteur de visites. [ par DMon ] Salut tout le monde!J'aimerais mettre sur mon site web, un compteur de visites, et le nombre de connect&#233;s sur le site, sans utiliser MySQL, et en


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,952 sec (3)

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