Les bots sont-ils des visiteurs comme les autres ?

  • Auteur de la discussion Auteur de la discussion Zecat
  • Date de début Date de début
WRInaute accro
Au regard des sessions ...

Je m'explique :

1 - un routine init_session.php dans laquelle je chope l'ip, que je compare a ma liste d'ip de bots et si c'est un bot connus :

$is_bot = true;

2 - Puis je stocke cette info dans une variable session :

$_SESSION ['is_bot']=$is_bot;

Jusque là pas de bleme.

Par contre la ou j'ai un doute c'est lors de l'accès à une autre page par le même bot, est ce que les variables sessions sont conservées comme pour le commun des mortels et donc je ne 'ai pas a refaire le recherche mais juste :

$is_bot=$_SESSION ['is_bot'];

Ou les bots sont des trucs a part et donc je dois retester ma liste de bot à chaque page ?

Voila ($is_bot == true :mrgreen: ) c'est tout simple.

Note : de toute façon je teste if (isset ($_SESSION ['is_bot']) == false) mais bon c'est pour bien comprendre what happens avec les bots.
 
WRInaute impliqué
Comment fonctionnent les sessions ?

Une session est représentée par un identifiant de session (généré automatiquement) ainsi que des informations diverses et variées (ton is_bot par exemple).
Où sont stockées ces données ? Les données de la session (le is_bot) sont stockées sur le serveur. Pour relier un visiteur à une session, il faut que l'identifiant de la session soit stocké à la fois chez le client et sur le serveur (c'est le lien de notre session).
Sur le serveur, peut importe comment c'est stocké, ça ne change rien.
Sur le client, il s'agit généralement d'un cookie, contenant l'id de la session. On peut aussi passer cet identifiant dans les url.
Donc si ton client (visiteur), gère les cookies, la session sera conservée, sinon non. C'est pour ça que généralement, on préfère faire passer l'id de session dans l'url pour les bots, car très peu gèrent les cookies correctement.

Voilou.
 
WRInaute accro
L'identifiant de session est transmis soit par cookie soit dans l'URL via la variable GET PHPSESSID.
On préfère tous la version par cookie, donc on le force ainsi. Mais si le bot n'accepte pas les cookies, un nouvel ID de session sera regénéré à chaque fois, donc le $_SESSION['is_bot'] ne sera plus setté.

Edit: grilled
 
WRInaute accro
Donc si je resume vos intervention :

1 - avec mon principe actuel, pas de bleme que le visiteur gere ou pas les cookies (donc bot ou pas bot)

2 - sauf que si il gere pas ou mal les cookies, c'est une perte de temps de refaire tout le taf de reinit session a chaque fois (notamment pour les bots)

?
 
WRInaute accro
mé non mé non ... :mrgreen: :mrgreen:

Simplement lorsqu'un visiteur 'humain' (certes des fois on s'demande :mrgreen: :mrgreen: mais c'est un autre débat) affiche une page, j'en profite pour faire faire un petit travail en arrière plan et je stocke le résultat dans un fichier sur le serveur.

Lorsque c'est un bot, je saute cette étape 'taf en arriere plan' et stockage.

Tout simplement.

Nb : ce taf en plus ou en moins n'influe pas sur la page affichée ...
 
WRInaute accro
Dans ce cas-là tu pourrais aussi effectuer ce taf en Ajax, vu que le JS n'est pas exécuté par les bots. Ca serait l'occasion de remettre les mains dans le chaud et moite cambouis du traitement asynchrone :-)
 
WRInaute accro
UsagiYojimbo a dit:
Dans ce cas-là tu pourrais aussi effectuer ce taf en Ajax, vu que le JS n'est pas exécuté par les bots. Ca serait l'occasion de remettre les mains dans le chaud et moite cambouis du traitement asynchrone :-)
Nan nan pas de suite ... là j'ai mis mon neurone au repos (ils annoncent un petit 39 ° la semaine prochaine ici, alors je le conditionne pour la sieste-piscine :mrgreen: )
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut