Compteur PHP simple à améliorer
Résolu/Fermé
Cocoon2345
Messages postés
36
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
1 novembre 2011
-
18 oct. 2009 à 13:58
Seb2000 - 31 mai 2013 à 15:32
Seb2000 - 31 mai 2013 à 15:32
A voir également:
- Compteur PHP simple à améliorer
- Compteur électrique - Guide
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
- Iphone 14 simple - Guide
- Compteur communicant - Guide
- Compteur de contractions - Télécharger - Santé & Bien-être
10 réponses
Utilisateur anonyme
18 oct. 2009 à 15:05
18 oct. 2009 à 15:05
Tu peux compter les visiteurs unique en récupérant leur ip, et en l'inscrivant dans un fichier txt ou une base de donnée. Comme ça, si quelqu'un visite le site, et que son ip est dans le fichier txt/la bdd, tu n'incrémente pas le compteur, sinon tu l'incrémente.
(pour récupérer l'ip, tu peux utiliser $_SERVER['REMOTE_ADDR'] ) :
(pour récupérer l'ip, tu peux utiliser $_SERVER['REMOTE_ADDR'] ) :
<?php // Variables de la fonte <font></font> : $couleur = "#000099"; $police = "Vivaldi"; $taille = "5"; // On ouvre le fichier et on extrait les données : $fichier = "compteur.txt"; $fp = fopen($fichier, "r"); if(!$fp) echo "Impossible d'ouvrir le fichier $fichier."; $compteur = fgets($fp, 20); // On vérifie le nombre de hits pour le pluriel et on affiche le compteur : if($compteur == 1) { echo "<font color=$couleur size=$taille face=$police><b>$compteur</b></font> <font face=$police size=$taille color=#000000>visite au total.</font>"; } else { echo "<font color=$couleur size=$taille face=$police><b>$compteur</b></font> <font face=$police size=$taille color=#000000>visites au total.</font>"; } // On ferme le fichier : fclose($fp); // On incrémente de 1 le compteur : if( !pregmatch("#".$_SERVER['REMOTE_ADDR']."#", $iplog) ){ //si l'ip n'est pas dans le fichier texte $compteur++; // on incrémente $iplog = fopen('iplog.txt', "a+"); fwrite($iplog, $_SERVER['REMOTE_ADDR']); // et on ajoute l'ip au fichier texte fclose($iplog) } // On ecrit dans le fichier : $fp2 = fopen($fichier, "w"); fwrite($fp2, $compteur); // On ferme le fichier : fclose($fp2); ?>
Utilisateur anonyme
18 oct. 2009 à 14:15
18 oct. 2009 à 14:15
Pour répondre à la question : Oui bien sûr c'est possible...
Mais je ne te donnerais pas la réponse pour la simple et bonne raison que tu vas vendre à des "clients" ce que les utilisateurs de ce site te donneront comme script pour te dépanner.
Il est donc hors de question que je prenne de mon temps libre pour que toi tu touches du fric sur mon dos...
Voilà !! Bonne journée et bon courage !
Mais je ne te donnerais pas la réponse pour la simple et bonne raison que tu vas vendre à des "clients" ce que les utilisateurs de ce site te donneront comme script pour te dépanner.
Il est donc hors de question que je prenne de mon temps libre pour que toi tu touches du fric sur mon dos...
Voilà !! Bonne journée et bon courage !
Cocoon2345
Messages postés
36
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
1 novembre 2011
18 oct. 2009 à 14:51
18 oct. 2009 à 14:51
Ah tu en es resté là, dommage.
Il n'est donc pas possible d'être "webmaster amateur" et de créer des sites simples pour des amis, des clubs sportifs, des PME de campagne qui s'adressent à un amateur en toute connaissance de cause et lui offrent une rémunération adaptée à son niveau de compétence. Le club de ski de mon village de 1500 habitants ne s'adressera jamais à un professionnel pour faire leur site, ça ne correspond ni a leurs besoins, ni à leurs moyens.
Mon intention n'a jamais été de duper qui que ce soit sur mes compétences, ni d'essayer de m'enrichir sur le dos de qui que ce soit. Il y a dans tous les domaines des professionnels et des amateurs qui cohabitent. Si tu vas voir jouer une troupe de théâtre amateur tu es conscient que le niveau ne sera pas à la hauteur des acteurs professionnels, et pourtant tu trouves normal de payer ta place. Et cette troupe ne vas pas mettre en péril le travail des acteurs professionnels.
Tu t'es fait une fausse idée de moi et sur cette base tu es en train de griller toutes mes chances de trouver de l'aide ici, ce n'est pas très correct de ta part.
Il s'agissait simplement d'ajouter un compteur sur mon propre site et d'acquérir de nouvelles connaissances. Il est vrai que les connaissances que j'acquiers et que j'applique sur mon site sont susceptibles d'être utilisées une nouvelle fois ailleurs. Mais je ne vois pas ce qu'il y a de diabolique là-dedans, c'est le principe même de l'apprentissage.
J'espère simplement que ton intervention musclée, et je répète injustifiée, ne découragera pas d'autres personnes à essayer de m'aider.
Alors merci d'avance aux autres :-)
Il n'est donc pas possible d'être "webmaster amateur" et de créer des sites simples pour des amis, des clubs sportifs, des PME de campagne qui s'adressent à un amateur en toute connaissance de cause et lui offrent une rémunération adaptée à son niveau de compétence. Le club de ski de mon village de 1500 habitants ne s'adressera jamais à un professionnel pour faire leur site, ça ne correspond ni a leurs besoins, ni à leurs moyens.
Mon intention n'a jamais été de duper qui que ce soit sur mes compétences, ni d'essayer de m'enrichir sur le dos de qui que ce soit. Il y a dans tous les domaines des professionnels et des amateurs qui cohabitent. Si tu vas voir jouer une troupe de théâtre amateur tu es conscient que le niveau ne sera pas à la hauteur des acteurs professionnels, et pourtant tu trouves normal de payer ta place. Et cette troupe ne vas pas mettre en péril le travail des acteurs professionnels.
Tu t'es fait une fausse idée de moi et sur cette base tu es en train de griller toutes mes chances de trouver de l'aide ici, ce n'est pas très correct de ta part.
Il s'agissait simplement d'ajouter un compteur sur mon propre site et d'acquérir de nouvelles connaissances. Il est vrai que les connaissances que j'acquiers et que j'applique sur mon site sont susceptibles d'être utilisées une nouvelle fois ailleurs. Mais je ne vois pas ce qu'il y a de diabolique là-dedans, c'est le principe même de l'apprentissage.
J'espère simplement que ton intervention musclée, et je répète injustifiée, ne découragera pas d'autres personnes à essayer de m'aider.
Alors merci d'avance aux autres :-)
Cocoon2345
Messages postés
36
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
1 novembre 2011
18 oct. 2009 à 15:56
18 oct. 2009 à 15:56
merci sonik21,
Alors récapitulons (je n'en suis qu'au chapitre 5 de l'apprentissage du PHP sur le site du zéro, alors je n'y comprends pas encore grand-chose)
On prends l'option d'inscrire l'IP dans un fichier .txt
Donc
je crée un fichier iplog.txt que j'upload à la racine du site.
j'ajoute ton bout de code dans mon fichier compteur.php pour incrémenter le compteur de 1 si le fichier iplog.txt ne contient pas l'IP
j'ai du louper un truc évident vu que ça marche pas, je dois créer une nouvelle variable?
Alors récapitulons (je n'en suis qu'au chapitre 5 de l'apprentissage du PHP sur le site du zéro, alors je n'y comprends pas encore grand-chose)
On prends l'option d'inscrire l'IP dans un fichier .txt
Donc
je crée un fichier iplog.txt que j'upload à la racine du site.
j'ajoute ton bout de code dans mon fichier compteur.php pour incrémenter le compteur de 1 si le fichier iplog.txt ne contient pas l'IP
j'ai du louper un truc évident vu que ça marche pas, je dois créer une nouvelle variable?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
18 oct. 2009 à 16:15
18 oct. 2009 à 16:15
argh, j'avais oublié de récupérer le contenu de iplog.txt avant :
$iplog_ip = file_get_content('iplog.txt'); //récupère le contenu du fichier texte if( !pregmatch("#$_SERVER['REMOTE_ADDR']#", $iplog_ip) ){ //si l'ip n'est pas dans le fichier texte $compteur++; // on incrémente $iplog = fopen('iplog.txt', "a+"); fwrite($iplog, $_SERVER['REMOTE_ADDR']); // et on ajoute l'ip au fichier texte fclose($iplog); }
Cocoon2345
Messages postés
36
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
1 novembre 2011
18 oct. 2009 à 16:24
18 oct. 2009 à 16:24
:-((((
Toujours pas:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Toujours pas:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Cocoon2345
Messages postés
36
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
1 novembre 2011
18 oct. 2009 à 17:08
18 oct. 2009 à 17:08
Alors après avoir appliqué la syntaxe du premier message au 2e (il y avait quelques " et . en plus), j'ai ceci:
// On incrémente de 1 le compteur :
$iplog_ip = file_get_content('iplog.txt'); //récupère le contenu du fichier texte
if( !preg_match("#".$_SERVER['REMOTE_ADDR']."#", $iplog_ip) ){ //si l'ip n'est pas dans le fichier texte
$compteur++; // on incrémente
$iplog = fopen('iplog.txt', "a+");
fwrite($iplog, $_SERVER['REMOTE_ADDR']); // et on ajoute l'ip au fichier texte
fclose($iplog);
}
Maintenant je revoir mon compteur sur la page, si je rafraichis, il ne s'incrémente plus de 1 (donc c'est mieux), mais j'ai un nouveau message d'erreur:
Fatal error: Call to undefined function: file_get_content()
// On incrémente de 1 le compteur :
$iplog_ip = file_get_content('iplog.txt'); //récupère le contenu du fichier texte
if( !preg_match("#".$_SERVER['REMOTE_ADDR']."#", $iplog_ip) ){ //si l'ip n'est pas dans le fichier texte
$compteur++; // on incrémente
$iplog = fopen('iplog.txt', "a+");
fwrite($iplog, $_SERVER['REMOTE_ADDR']); // et on ajoute l'ip au fichier texte
fclose($iplog);
}
Maintenant je revoir mon compteur sur la page, si je rafraichis, il ne s'incrémente plus de 1 (donc c'est mieux), mais j'ai un nouveau message d'erreur:
Fatal error: Call to undefined function: file_get_content()
Cocoon2345
Messages postés
36
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
1 novembre 2011
18 oct. 2009 à 17:32
18 oct. 2009 à 17:32
ok ça joue maintenant j'ai trouvé la faute de frappe:
file_get_contents
au lieu de
file_get_content
Donc le code définitif:
// On incrémente de 1 le compteur :
$iplog_ip = file_get_contents('iplog.txt'); //récupère le contenu du fichier texte
if( !preg_match("#".$_SERVER['REMOTE_ADDR']."#", $iplog_ip) ){ //si l'ip n'est pas dans le fichier texte
$compteur++; // on incrémente
$iplog = fopen('iplog.txt', "a+");
fwrite($iplog, $_SERVER['REMOTE_ADDR']); // et on ajoute l'ip au fichier texte
fclose($iplog);
}
sonik21, merci beaucoup et bonne soirée,
Sara
file_get_contents
au lieu de
file_get_content
Donc le code définitif:
// On incrémente de 1 le compteur :
$iplog_ip = file_get_contents('iplog.txt'); //récupère le contenu du fichier texte
if( !preg_match("#".$_SERVER['REMOTE_ADDR']."#", $iplog_ip) ){ //si l'ip n'est pas dans le fichier texte
$compteur++; // on incrémente
$iplog = fopen('iplog.txt', "a+");
fwrite($iplog, $_SERVER['REMOTE_ADDR']); // et on ajoute l'ip au fichier texte
fclose($iplog);
}
sonik21, merci beaucoup et bonne soirée,
Sara