Compteur visiteur unique sans MYSQL

Résolu/Fermé
nocram18
Messages postés
465
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
16 juillet 2017
- Modifié par nocram18 le 8/08/2016 à 02:12
nocram18
Messages postés
465
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
16 juillet 2017
- 9 août 2016 à 02:15
Yo les ami(e)s,

Comment allez vous ?

Bon voilà si je suis là c'est que j'ai un problème ;).

J'aimerai faire un compteur visiteur unique sans MySQL (je suis trop nul j'arrive pas à faire les tutos avec base de données).

En cherchant sur le web et en parcourant une 100aines de sites, j'ai réussi à avoir se code un peu prés potable.


<?php
session_start(); // DEMARRE LA SESSION
// SAUVGARDE LA VARIABLE hits DANS LE FICHIER DE SESSION
$_SESSION['hits'] = $hits;
if (!isset($_COOKIE['ip']))
{

// TRAITEMENT SUR LE FICHIER TEXTE
if(empty($hits)){
$fp=fopen("compteur.txt","a+"); //OUVRE LE FICHIER compteur.txt
$num=fgets($fp,4096); // RECUPERE LE CONTENUE DU COMPTEUR
fclose($fp); // FERME LE FICHIER
$hits=$num - -1; // TRAITEMENT
$fp=fopen("compteur.txt","w"); // OUVRE DE NOUVEAU LE FICHIER
fputs($fp,$hits); // MET LA NOUVELLE VALEUR
fclose($fp); // FERME LE FICHIER
}
// AFICHAGE DU COMPTEUR
echo "<TABLE align=center>";
echo "<TR>";
echo "<TD STYLE='border:1pt Solid navy;' >";
echo "<FONT FACE='Verdana, Arial, Helvetica, sans-serif' SIZE=1>";
echo "Visiteurs : $hits"; // VARIABLE DU COMPTEUR
echo "</FONT>";
echo "</TD>";
echo "</TR>";
echo "</TABLE>";

$timestamp_expire = time() + 24*3600;
setcookie('ip', $_SERVER['REMOTE_ADRESS'], $timestamp_expire);
}
?>


Le code au dessus fonctionne niquel mais à chaque rechargement de page il s'accrémente d'un +1.

Donc le compteur est faussé.

Pour cela j'ai essayé de créer un cookie de 24h qui enregistre les ip des visiteurs puis les efface mais cela ne fonctionne pas.

SI quelqu'un à une idée.

C'est un code pour moi et juste à mettre sur la page d'accueil. Ce n'est pas un code visible pour tout les utilisateurs.

En te souhaitant une excellente nuit ou journée :D
Au plaisir. Je me répéte mais :<<Google is your friend>>.....  Moi sur google c'est << nalpha 54 >> ;-). précisez les questions nous ne sommes pas devin.
N'oubliez pas de mettre en résolu les sujets.
A voir également:

1 réponse

codeurh24
Messages postés
760
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
8 septembre 2018
122
Modifié par codeurh24 le 8/08/2016 à 11:39
Salut. C'est mieux comme ça ?

<?php session_start(); 

if (!isset($_COOKIE['revisite']))
{
	// TRAITEMENT SUR LE FICHIER TEXTE
	$fp=fopen("compteur.txt","a+"); 
	$num=fgets($fp,4096); 
	fclose($fp); 
	$hits=$num - -1;  
	$fp=fopen("compteur.txt","w");  
	fputs($fp,$hits); 
	fclose($fp);  

	$timestamp_expire = time() + 24*3600;
	setcookie('revisite', "1", $timestamp_expire);
	
 }else{
	$fp=fopen("compteur.txt","a+"); 
	$num=fgets($fp,4096); 
	fclose($fp); 
	$hits=$num ;  
 }
 
 	// AFICHAGE DU COMPTEUR
	echo "<TABLE align=center>";
	echo "<TR>";
	echo "<TD STYLE='border:1pt Solid navy;' >";
	echo "<FONT FACE='Verdana, Arial, Helvetica, sans-serif' SIZE=1>";
	echo "Visiteurs : $hits"; // VARIABLE DU COMPTEUR
	echo "</FONT>";
	echo "</TD>";
	echo "</TR>";
	echo "</TABLE>";
?>
3
nocram18
Messages postés
465
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
16 juillet 2017
24
9 août 2016 à 00:54
Yo,

Franchement niquel ça fonctionne ? J'ai regardé mes erreurs, mais déjà le programme à la base me dépassé. Un grand merci à toi et à ccm comme d'hab.

J'ai testé en supprimant le cookie après et cela fonctionne :D.

CONCLUSION :


Pour ceux qui vont lire ses messages. Il faut mettre le code dans l'index.php à la racine de votre site. Lui donner les autorisations 777 avec chmod.

Et il faut aussi faire un fichier compteur.txt avec rien dedans et des autorisations.

En espérant que cela puisse aider tout le monde car il n'y a rien d'autre d’intéressant sur le web.

Je répète que j'ai bien utilisé des cookies car je ne suis pas bon en base de données.

Bonne continuation à tous, bisous. :D
0
Judge_DT
Messages postés
28789
Date d'inscription
vendredi 5 février 2010
Statut
Modérateur
Dernière intervention
23 octobre 2021
9 912 > nocram18
Messages postés
465
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
16 juillet 2017

9 août 2016 à 02:12
Personnellement, donner la permission "777" à un fichier... ça me fait peur ;o)
Mais après tout, c'est une question de sécurité... :o)
0
nocram18
Messages postés
465
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
16 juillet 2017
24 > Judge_DT
Messages postés
28789
Date d'inscription
vendredi 5 février 2010
Statut
Modérateur
Dernière intervention
23 octobre 2021

Modifié par nocram18 le 9/08/2016 à 02:15
Ui enfin 755, la permission d’ouvrir d'écrire dedans et de le fermer. Je ne sais jamais donc je mets 777 et ça fonctionne niquel ;)
0