Page 1 sur 2

Double compte...

Posté : 09 oct. 2005, 16:04
par X_a_v_i_e_r
Bonjour à tous,

je voudrais savoir s'il est possible d'empêcher le double compte (par vérification d'ip) sans passer par la base de donnée. Les Ip des personnes connectées s'ajouteraient sur un fichier texte, et avec impossibilité d'avoir deux fois la même IP.

Et avec cela, permettre de faire un calcul du nombre de membres connectés.

Mais si cela n'est pas possible par fichier texte, on le fait sur la base de donnée, mais c'était pour ne pas l'encombrer. Mais je ne vois pas non plus comment faire...

Merci de votre aide !

Re: Double compte...

Posté : 09 oct. 2005, 16:08
par DocType
Bonjour à tous,

je voudrais savoir s'il est possible d'empêcher le double compte (par vérification d'ip) sans passer par la base de donnée. Les Ip des personnes connectées s'ajouteraient sur un fichier texte, et avec impossibilité d'avoir deux fois la même IP.

Et avec cela, permettre de faire un calcul du nombre de membres connectés.

Mais si cela n'est pas possible par fichier texte, on le fait sur la base de donnée, mais c'était pour ne pas l'encombrer. Mais je ne vois pas non plus comment faire...

Merci de votre aide !
:shock: Idem que Cyrano le smiley...
Je ne vois pas en quoi ca encombrerait la bdd, elle est faite pour ca non? Sinon on mettrais tout en fichier texte, pseudo, mdp, mail, etc...
Pour créer ton script, il suffit d'un peu de logique de base...quelques if et ptetre un while et ca tourne :wink:
Il ne faut pas oublier qu'il existe encore des ip dynamiques, ce qui limite l'uitilisation d'un tel script :roll:

Posté : 09 oct. 2005, 19:00
par Dux
salut

plus simple qu'un fichier texte, crée un dossier ou chaque nom de fichier est une IP
Donc si tu as 10 fichiers dont la date est inférieure à par exemple 10mn, ca veut dire que tu as eu 10 visiteurs différents ces 10 dernières minutes.
Pour ce genre d'opération, les fichiers textes sont préférables à une BDD plus "technique" car c'est très rapide et on n'a pas besoin de fonctions compliquées de tri et recherche.

Posté : 09 oct. 2005, 21:12
par X_a_v_i_e_r
Oki, je vais voir tout ça :D

Je précise que je veux économiser de la place par tous les moyens sur ma bdd. On arrive fréquemment à 20 à 30 personnes en même temps sur le site, j'ai pas envie que ça prenne trop de place.

Enfin, je veux bien aussi savoir comment on fait par la base de donnée...

Merci

Posté : 10 oct. 2005, 01:04
par DocType
Oki, je vais voir tout ça :D

Je précise que je veux économiser de la place par tous les moyens sur ma bdd. On arrive fréquemment à 20 à 30 personnes en même temps sur le site, j'ai pas envie que ça prenne trop de place.

Enfin, je veux bien aussi savoir comment on fait par la base de donnée...

Merci
j'ai déjà vu des forums avec 400000 messages et 40000 membres avec 400 connectés en permanence...ba la base de données ne faisait que 150 meg, c'est très peu. Ensuite, créer des fichiers sur le serveur va occuper...l'espace disque :roll: Je ne vois pas la super utilité...

Si tu le fais en base de données, tu as plus de possibilités...
Il te faut pour cela l'heure de derniere connexion, l'adresse ip de derniere connexion et une variable true ou false. Le principe est simple:
premiere connexion: tu envoie ladresse ip, le timestamp et la valeur false en bdd.
seconde connexion: tu compares ladresse ip et le timestamp ==>

si + de 24 heures se sont ecoulés depuis la derniere connexion, on compare les ips...si elle sont identiques, on met le champ de tout a lheure en true.
Cela voudra dire que le mec a une ip fixe, si a la connexion dun membre on retrouve cette ip sur un autre compte, on aura donc un double compte.

si - de 24 heures ou ip différente, on compare si cette ip n'a pas été utilisé les 2 dernières heures sr un autre compte. SI ce n'est pas le cas, on garde false en bdd, on met le nouveau timestamp et on met la nouvelle ip.

j'allais oublier... il faut également tester si on se connecte à un compte avec une adresse ip fixe (TRUE en bdd de tout a l'heure). si c'est le cas que l'on retrouve l'ip en bdd sur un compte de type true, on cherche meme pas ==> c un double compte

Après, tu peux doubler ce test avec les cookies qui peuvent egalement te donner des infos... :wink:

Re: Double compte...

Posté : 10 oct. 2005, 12:16
par pjl
je voudrais savoir s'il est possible d'empêcher le double compte (par vérification d'ip)
Ou as tu vu que derrière une IP, il ne peut y avoir qu'une et une seule personne ?

Posté : 15 oct. 2005, 00:50
par X_a_v_i_e_r
Bonsoir,

Je sais bien qu'il peut y avoir plusieurs personnes, quand même lol, je sais au moins ça :wink: mais tant pis, je souhaite tout du moins que lorsque moi, à lecture d'un fichier texte par exemple, je retrouve deux fois la même IP, que au moins je le sache...

Merci

Posté : 15 oct. 2005, 01:10
par Dux
si tu veux le faire en texte, essaye cette méthode:
-crée un dossier ip/ que tu protèges du dir listening avec un htaccess

dans tes pages, inclue un script:
$ip=$_SERVER['REMOTE_ADDR'];
$fp= fopen("ip/".$ip, "w"); fclose($fp);

$dir=opendir('ip');
while ( ($ip = readdir($dir)) !== false ) 
if ($ip{0} != '.') 
if ( date("U") - date("U", filemtime("ip/".$ip)) > 600 ) unlink("ip/".$ip);
else $live++;
closedir($dir);
echo $live." connecté(s)";
tout simplement

Posté : 15 oct. 2005, 01:14
par X_a_v_i_e_r
Euh, mais juste sinon, c'est quoi la ligne unique servant à avoir l'ip, serait-ce :

Code : Tout sélectionner

$ip=$_SERVER['REMOTE_ADDR'];
?

Merci

Posté : 15 oct. 2005, 01:19
par Dux
oui, tout à fait, regarde le tuto de phpfrance
http://www.phpfrance.com/tutoriaux/inde ... ironnement

Posté : 15 oct. 2005, 01:23
par X_a_v_i_e_r
Ahhhh, pas mal le lien, je note, merci beaucoup :wink:

Posté : 15 oct. 2005, 01:30
par Truc
petite précision pour ajouter dans un fichier il faut l'ouvrir en mode "a" (append)
$fp= fopen("ip/".$ip, "a"); fclose($fp);

Posté : 15 oct. 2005, 01:43
par Dux
oui mais la "w" est parfait car on écrit rien dans le fichier :) donc il n'y a rien à ajouter en fin de contenu

Posté : 15 oct. 2005, 02:00
par Truc
c'est vrai aussi (pas vu au 1er coup d'oeil :wink: ), création d'un fichier par IP => "w" OK

mais manque un / quant meme :)
unlink("ip/".$ip);  
pour le fun

Posté : 15 oct. 2005, 02:03
par Dux
Correct !
je modifie ;)