Double compte...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Double compte...

par X_a_v_i_e_r » 15 oct. 2005, 14:31

Bonjour à nouveau,

Oui, 10 000 ça fait pas mal quand même ^^ je pense que les pointes se situeront entre 30 et 40 les premières semaines. Mais il est possible que ça monte à 3 voir 4 fois plus.

Mais vous battez pas sur ce problème ^^

Bonne après-midi

par Dux » 15 oct. 2005, 10:58

premièrement je vois pas le problème qui semble te dresser les cheveux de la tête, il pourrait y avoir 10000 visiteurs en 10mn que ca ne changerait pas grand chose, au contraire, c'est plus rapide que quelques requettes à MySQL. Mais bienheureux les propriétaires de sites qui font 10 000 visiteurs simultanés. LOL avec une seule pub par page, ils ont de quoi manger.

Je vois pas pourquoi cherche une IP mais si c'est le cas: if (file_exists("ip/".$recherche)) { ... }

Ce système est facilement réalisable par des requettes sur une table dédiée à l'enregistrement des IP mais si le but est simplement de compter le nombre de visiteurs simultanés, un fichier vide par IP me parait plus sensé. Ce système fonctionnera très bien tant que le serveur du site fonctionnera, même si la BDD est "out".

Parfois il faut faire le choix entre Base de donnée MySQL, SQLLite ou Base de donnée texte. Je le sais de part mon expérience et je ne suis pas le seul à le penser, renseigne toi au près des grands pros.

par pjl » 15 oct. 2005, 10:43

Un fichier par IP ? :afraid:
10000 visiteurs différents, 10000 fichiers différents !!!!!!!!!!!!
Ca va être vachement facile de retrouver une IP là-dedans.

Quel est l'intéret de cette méthode ?

par Dux » 15 oct. 2005, 02:03

Correct !
je modifie ;)

par Truc » 15 oct. 2005, 02:00

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

par Dux » 15 oct. 2005, 01:43

oui mais la "w" est parfait car on écrit rien dans le fichier :) donc il n'y a rien à ajouter en fin de contenu

par Truc » 15 oct. 2005, 01:30

petite précision pour ajouter dans un fichier il faut l'ouvrir en mode "a" (append)
$fp= fopen("ip/".$ip, "a"); fclose($fp);

par X_a_v_i_e_r » 15 oct. 2005, 01:23

Ahhhh, pas mal le lien, je note, merci beaucoup :wink:

par Dux » 15 oct. 2005, 01:19

oui, tout à fait, regarde le tuto de phpfrance
http://www.phpfrance.com/tutoriaux/inde ... ironnement

par X_a_v_i_e_r » 15 oct. 2005, 01:14

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

par Dux » 15 oct. 2005, 01:10

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

par X_a_v_i_e_r » 15 oct. 2005, 00:50

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

Re: Double compte...

par pjl » 10 oct. 2005, 12:16

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 ?

par DocType » 10 oct. 2005, 01:04

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:

par X_a_v_i_e_r » 09 oct. 2005, 21:12

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