Accueil > Forum > > > > Ip unique via fichier txt
Ip unique via fichier txt
vendredi 18 décembre 2009 à 16:50:23 |
Ip unique via fichier txt

vita83
|
Bonjour je souhaiterais via un fichier texte, verifier qu'une ip ne voie qu'une fois par jour un div.
Je vais tenté d'exposer le pourquoi, je voudrais mettre une pub google sur mon site (oui je sais beurk), mais j'ai lu de ci de la, que si un petit malin cliquer 140 fois sur la pub .. cela pouvais faire sauter le compte associer a cette pub.
Je vous montre ou j'en suis pour le moment, pas loin .. mais pour moi c'es déja un miracle :)
Code PHP :
<?
$ip = $_SERVER["REMOTE_ADDR"];
$date = date("d-m-Y");
Print("");
$nom_fichier = "$date.txt";
if ($fichier = fopen($nom_fichier, "a+")) {
fwrite($fichier, $ip);
fwrite($fichier, "\r\n");
fclose($fichier);
} else {
print("Impossible d'acceder au fichier $nom_fichier");
}
?>
Donc dans ma logique il me fallait verifier chaques jours qu'une ip ne soit pas deja passer par la, et pour une raison qui m'es propre je ne souhaite pas utilisé MySql, d'ou le choix pour le fichier texte.
A partir de la, les ip sont bien stocker dans un fichier texte a la date du jour.
Maintenant j'aimerai savoir comment effectuer une verification sur ce fichier, afin de savoir si oui ou non, une ip es déja passer par la, afin d'inclure ou non cette ip a la suite des autres et surtout d'afficher ou non le div dans la page contenant ce code :)
Je ne demande pas de macher le travail, juste comprendre comment ca dois ce passer, par exemple simplement avec un affichage, l'ip existe/l'ip n'existe pas , j'adapterai moi meme :)
Je ne veut pas non plus d'un script tout fais, je voudrais reellement comprendre.
Merci par avance pour vos pistes
|
|
vendredi 18 décembre 2009 à 20:37:24 |
Re : Ip unique via fichier txt

kohntark
|
Salut Vita,
C'est un peu lourd je trouve, le jeu en vaut il vraiment la chandelle ? Je doute.
Il faudrait en savoir plus sur ces limitations, c'est 140 cliques de la même IP tous les jours ? toutes les 10 minutes ?
N'autoriser qu'un seul affichage par jour est quelque peu extrémiste.
Quelques remarques sur ton code :
<?
=>
<?php
Code PHP : $ip = $_SERVER["REMOTE_ADDR"];
$date = date("d-m-Y");
Print("");
$nom_fichier = "$date.txt";
if ($fichier = fopen($nom_fichier, "a+")) {
fwrite($fichier, $ip);
fwrite($fichier, "\r\n");
fclose($fichier);
=> en 1 seule ligne n'est ce pas mieux ?
Code PHP : file_put_contents(date("dmY").'.txt', $_SERVER["REMOTE_ADDR"]."\r\n", FILE_APPEND);
Maintenant que ton fichier est constitué tu n'as plus qu'à :
- retirer l'IP du visiteur
- retirer le contenu de ton fichier (voir file() et file_exists())
- regarder si l'ip est présente (voir in_array())
- oui ?
=> tu n'affiches pas le div
- non ?
=> tu affiches le div
=> tu consignes l'ip avec le code que tu as déjà écrit, l'idéal étant de le
mettre dans une fonction
N'hésite pas à re poster.
Bonne soirée,
Kohntark -
|
|
samedi 19 décembre 2009 à 13:44:53 |
Re : Ip unique via fichier txt

vita83
|
Erf :( pour <?php ca m'était sorti de la tete :p
En ce qui concerne le code sur une ligne seule, bah je vois que la majorités des sites ne sont pas a jour avec php, sur les 3/4 des sites je suis tomber sur ca, et notamment dans le livre "php5 & mysql5" de micro application (983 pages) ou le même procéder que moi est utilisé.
Je vais donc essayer de comprendre un peu mieux cette ligne, bien qu'il me semble déjà l'avoir cerné :), merci a toi pour cela
J'avais plus ou moi trouver un bout de code, qui aurait pu, convenir a une partie de ce que je compte faire :
Code PHP :
<? php
$date = date("d-m-Y");
if (!$fp = fopen("$date.txt","r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
while(!feof($fp)) {
$Ligne = fgets($fp,255);
echo $Ligne;
$Fichier .= $Ligne;
}
fclose($fp);
}
?>
Il ne resterai plus qu'a insérer une condition, si l'ip existe alors ..
Hélas, au vu de ton code, et du mien , je présume que ce code ci n'es pas a jour non plus.
Sinon, oui je pense que le jeu en vaut la chandelle, ne serai-ce que pour une auto-satisfaction, et m'aider a comprendre un peu plus php, qui me semble si énorme oO
|
|
samedi 19 décembre 2009 à 15:10:12 |
Re : Ip unique via fichier txt

kohntark
|
la majorités des sites ne sont pas a jour avec php
Ce n'est pas faux, et c'est très souvent un problème pour les débutants qui recopient, pensant bien faire, du vieux code qui ne fonctionne plus, ou mal, sur les versions actuelles de PHP.
Dans ton cas le code n'est pas faux est reste d'actualité.
C'est plus une question de simplicité et de concision, mais cela reste à l'appréciation de chacun.
file_put_contents(date("dmY").'.txt', $_SERVER["REMOTE_ADDR"]."\r\n", FILE_APPEND);
file_put_contents => (voir la doc) ça te remplace le fopen, le fwrite et le fclose en une seule fonction.
date("dmY").'.txt', $_SERVER["REMOTE_ADDR"]."\r\n" => je ne fais que condenser (concaténer) ce que tu fais en passant par plusieurs variables ($date, $ip, $nom_fichier, ...)
[...]Hélas, au vu de ton code, et du mien , je présume que ce code ci n'es pas a jour non plus.
Tu fais comme tu le sens hein, mais je pense que tu gagnerai en simplicité et en efficacité a utiliser les fonctions que je t'ai indiquées (file, in_array ...).
Je te laisse consulter la doc (php.net) qui s'y rapporte.
Voici tout de même un peu plus de détail :
Afin de correctement scinder les choses tu crées 2 fonctions :
- l'une nommée (par ex) addIP qui contient la ligne de code que je t'ai donnée (où au pire celui de ton premier message) avec en argument l'ip (il faudra donc remplacer $_SERVER["REMOTE_ADDR"] par la valeur de l'argument) :
Code PHP : <?php
function addIP($ip) {
file_put_contents(date("dmY").'.txt', $ip."\r\n", FILE_APPEND);
}
?>
- l'autre permettant le contrôle de la présence (ou non) de l'ip dans le fichier :
Code PHP : <?php
function checkIP($ip) {
// retrait du contenu du fichier ds un tableau
$a = file($date.'.txt');
// contrôle que l'ip passée en paramètre n'existe pas déjà
if (!in_array($ip, $a)) {
addIP($ip); // écrit l'ip dans le fichier
return false; // l'ip n'est pas présente
} else return true; // l'ip est présente
}
?>
Tu appelles tout simplement, dans ta page contenant la pub :
Code PHP : <?php
if (!checkIP($_SERVER["REMOTE_ADDR"])) { // l'ip n'est pas présente ds le fichier
// affichage du div contenant la pub
}
?>
Ce ne sont là que les grandes lignes afin de te montrer le principe (il faut également gérer les erreurs, purger les fichiers obsolètes, etc ...)
Sinon, oui je pense que le jeu en vaut la chandelle, ne serai-ce que pour une auto-satisfaction, et m'aider a comprendre un peu plus php, qui me semble si énorme oO
Tu as bien raison dans le principe, et je ne peux qu'adhérer à ça.
Il n'empêche qu'il est important de réfléchir sur le fond. Interdire plus d'un click par jour est exagéré. Pourquoi ne pas partir plutôt sur 1 click maximum toutes les heures ? Je me trompes peut être mais ça m'étonnerait que google en tienne rigueur.
Cordialement,
Kohntark -
|
|
dimanche 20 décembre 2009 à 13:57:43 |
Re : Ip unique via fichier txt

vita83
|
Nan nan :p bien évidemment que j'utilise ton code précédent, ne ligne au lieu de 6 ne peut qu'alléger un peu la page, et la relecture du code, encore fallais t'il le savoir, comme dis précédemment je ne suis pas un pro du Php :(
Sinon pour les fonction, vraiment pas mal, je suppose qu'il faut que le code soi dans la meme page, voir au pire inclus (include ou require), enfin je vais me documenter un peu sur toutes cette séries de commandes.
Une dernière petites question toutefois, quelle documentation, même en anglais s'il le faut me conseillerais tu sachant que j'ai juste quelques notions ?, j'ai un peu peur de partir sur de mauvaises bases, avec des exemples d'il y a 5 ans :(
Pour google, pour être franc je ne connais pas les limites, ma femme me dis que sur un site de jeu rpg online, il y a un système de publicités, sur lequel tu peut cliquer 5 fois par jour, de la a savoir si le système mis en place es ou non google adsence, je ne serai pas dire, mais comme on me la toujours dis mieux vaut prévenir que guérir :p
En tout cas merci pour tout ca :)
|
|
samedi 26 décembre 2009 à 05:12:08 |
Re : Ip unique via fichier txt

hornet_bzz
|
Hornet bzz
Les conseils de Kohntark sont parfaits donc je m'y +1.
J'ajouterai juste que $_SERVER['REMOTE_ADDR'] ne suffit pas dans le cas des proxy, voilàa comment je procède :
$current_ip = (!isset($current_ip))? !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'] : $current_ip ;
|
|
samedi 26 décembre 2009 à 09:37:26 |
Re : Ip unique via fichier txt

kohntark
|
Salut Hornet_bzz,
Bien vu pour cette précision.
Une question cependant :
$current_ip = (!isset($current_ip))? !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'] : $current_ip ;
Quel est l'intérêt du isset ??
Cordialement,
Kohntark -
|
|
samedi 26 décembre 2009 à 09:54:44 |
Re : Ip unique via fichier txt

hornetbzz
|
HORNET
Salut Kohntark,
A vrai dire, aucun intérêt particulier si c'est sorti de son contexte. Mais ça ne mange pas de pain non plus.
Dans son contexte, c'est utilisé dans une page php qui reboucle sur elle-même plusieurs fois, et je n'ai pas besoin de redéfinir à chaque fois l'IP du visiteur.
Voilà pour la petite histoire du contexte
|
|
Cette discussion est classée dans : fichier, code, texte, ip, pub
Répondre à ce message
Sujets en rapport avec ce message
help > fichier texte : Aïe! [ par paprikarmasutra ]
Salut,Voilà j'essaye de faire une petite tribune simple sans base MySQL, juste en mettant un fichier texte à jour en permanence. Le code fonctionne co
Ajouter une ligne a un fichier texte... [ par lex1111 ]
Bonjour, j'aimerais enregistrer dans un fichier texte les ips qui passent sur mon site...Donc j'aimerais parcourir mon fichier texte et si l'ip n'est
Demade d'aid [ par fouad_king_computer ]
j'ai besion des Script faits les étapes de mon travail 1. code fait la téléchargement de page web; 2.stocker cette page sur un repertoire; 3.code fai
Sauvegarde en UTF-8 [ par justbe ]
Bonjour, J'ai un problème concernant un fichier .txt (codage [b]UTF-8[/b] à la base) que j'édite via un simple formulaire, seulement lorsque je valid
comparaison variable et fichier texte [ par youvalcsharpp ]
bonjour a tous ! J'ai une petit probleme : J'ai un code qui enregiste l'ip du visiteur dans un fichier texte : [code=php]$lol="ip.txt"; $ip = $_SERV
non reecriture fichier texxte [ par youvalcsharpp ]
bonsoir J'ai une petit probleme : J'ai un code qui enregiste l'ip du visiteur dans un fichier texte : [code=php]$lol="ip.txt"; $ip = $_SERVER["REMOT
affichage / modification fichier texte dans un textarea [ par sly784965 ]
Bonjour, j'aimerais créer une page php me permettant d'afficher un fichier texte et ainsi pouvoir le modifier depuis cette même page web. Je n'ai tro
supprimer ligne fichier texte [ par sly784965 ]
Bonjour, j'ai le code suivant qui me permet d'afficher le contenu du fichier "affichage.php" via une boucle while : [code=php]<?php
tester fichier texte [ par youvalcsharpp ]
bonjour , Je voudrai savoir comment tester les 3 derniers caracteres d'un fichier texte jai ce code : [code=php]<?php $verif=@fopen("fichier.txt","r+
import de fichier texte en respectant la police ! [ par secropia ]
Bonjour, j'ai réussi à importé un fichier texte dans ma page php assez facilement avec ce code : [code=php] "; while(!feof($fichier)) { $ligne = fge
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|