Fork me on GitHub






Module System / Bloc "online"
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Bonjour,

le block qui affiche "Qui est en ligne" est très bien, mais je souhaiterais filtrer/décompter les robots d'indexation du nombre d'invités.

Pour cela, il faut modifier le contenu de la fonction b_system_online_show et ce n'est pas bien compliqué à réaliser. A vrai dire, j'ai même déjà commencé :

Open in new window

Actuellement, je ne comptabilise que Google via son adresse IP, ce qui est loin d'être suffisant (ni même satisfaisant dans la logique des choses ).

Quelles seraient les techniques qui permettraient de connaître si le visiteur est un robot ou un 'vrai' visiteur? Suffit-il de tester l'IP? Si oui, existe-t-il une liste toute faite regroupant les IP des robotos connus?

Eventuellement, un module réalise peut-être déjà ce genre de distinction. A ce moment-là, lequel? (il suffirait alors vraisemblablement de récupérer un bout de code et le tour serait joué).


ps: Le but du jeu est déviter ce genre d'affichage un peu abérrant (le site a environ 300 membres ) :

Open in new window

La suite de l'évolution consistera à enregistrer des records...

Posté le : 18/07/2007 13:41

Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Partager Twitter Partagez cette article sur GG+
Re: Module System / Bloc "online"
Xoops accro
Inscrit: 25/02/2004 00:20
De Région parisienne
Messages: 2526
tu peux aussi tester
getenv("HTTP_USER_AGENT")


ensuite il reste à déterminer ce qui est un robot et ce qui ne l'est pas !!!

regarde ce script : browscap et cette page de téléchargement

Posté le : 18/07/2007 14:01
Partager Twitter Partagez cette article sur GG+
Re: Module System / Bloc "online"
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Merci pour le lien que je ne connaissais pas.

J'y avais pensé pour l'environnement, mais là, se pose un problème dans le cadre du bloc "online" : l'environnement n'est pas stocké dans le handler 'online'... Seule l'IP est accessible. Du coup, dans la fonction 'b_system_online_show ', le getenv("HTTP_USER_AGENT") ne va accéder qu'aux infos de l'appelant, c'est à dire ... soi-même.

La seule solution simple : les IP. Sinon, cela entraîne de modifier XoopsOnlineHandler dans /kernel/online.php et d'ajouter un champ... C'est tout de suite une autre paire de manche! :-o

Posté le : 18/07/2007 15:54

Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Partager Twitter Partagez cette article sur GG+
Re: Module System / Bloc "online"
Xoops accro
Inscrit: 25/02/2004 00:20
De Région parisienne
Messages: 2526
Citation :

source php.net

'HTTP_USER_AGENT'
Contenu de l'en-tête User_Agent: de la requête courante, si elle existe. C'est une chaîne qui décrit le client HTML utilisé pour voir la page courante. Par exemple : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586).


Donc une fois que tu connais la valeur de HTTP_USER_AGENT, tu peut déterminer si il s'agit d'un robot ou non et faire ce que tu veux.

Posté le : 18/07/2007 17:01
Partager Twitter Partagez cette article sur GG+
Re: Module System / Bloc "online"
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Citation :
DuGris a écrit:
Donc une fois que tu connais la valeur de HTTP_USER_AGENT, tu peut déterminer si il s'agit d'un robot ou non et faire ce que tu veux.

Oui, oui, effectivement, j'avais mal analysé les choses. Je voulais faire le test en amont plutôt qu'en aval.

D'ailleurs, ça fonctionne : http://www.aquaportail.com (provisoirement, et juste à de fins d'exemple, j'affiche le nom du robot... ).

Eventuellement, si ça intéresse, je peux afficher la fonction modifiée mais mes sources sont tellement triturés pour l'url-rewriting que l'écriture n'a plus grand chose à voir avec les sources Xoops d'origine...


En tous cas, grand merci pour le lien de la bibliothèque.

Posté le : 18/07/2007 17:56

Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

122 Personne(s) en ligne (104 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 122 | Plus ...