Compteur journal des visiteurs avec leur ip et la date et heure de leur visite

0/5 (12 avis)

Snippet vu 16 871 fois - Téléchargée 26 fois

Contenu du snippet

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 / Exemple :


<?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

A voir également

Ajouter un commentaire Commentaires
amin_2005 Messages postés 4 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 9 mai 2007
9 mai 2007 à 10:07
merci
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
18 nov. 2006 à 15:20
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°
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
18 nov. 2006 à 12:08
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 ?
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
17 nov. 2006 à 15:02
"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°
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
17 nov. 2006 à 13:58
il veux dire un "select champ1, champ2, champ3" plutot qu'un "select *" expéditif
Afficher les 12 commentaires

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.

Du même auteur (keyloger666)