Compteur de visite avec cookie // robots

Tchup
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 23 Avr 2007

Compteur de visite avec cookie // robots

Message le Mar Sep 11, 2007 10:32

Bonjour à toutes et à tous,

j'ai un mini compteur de visite php avec l'utilisation des cookies.
J'aimerais garder son ultra simplicité tout en évitant de comptabiliser les robots...
J'ai pensé à ne pas incrémenter le nombre de visites si le cookie n'a pas était accepté (dans l'idée qu'un robot n'accepte pas les cookies et au détriment des réels clients n'acceptant volontairement pas les cookies...)

Qu'en pensez-vous ? L'idée est bonne ou y une autre astuce ?
Merci d'avance

:wink:


jeanluc
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: 3 Mai 2004

Message le Mar Sep 11, 2007 11:07

L'idée est bonne.

Rares sont les robots qui acceptent les cookies et rares sont les humains qui les refusent. :wink:

Jean-Luc

Dan_A
WRInaute discret
WRInaute discret
 
Messages: 183
Inscription: 21 Déc 2005

Message le Mar Sep 11, 2007 18:40

Comment sait-on lors de la première visite si les cookies sont acceptés ?

Tchup
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 23 Avr 2007

Message le Mar Sep 11, 2007 21:48

jeanluc a écrit:L'idée est bonne.

Merci :)

Dan_A a écrit:Comment sait-on lors de la première visite si les cookies sont acceptés ?
:?: setCookie() renvoie un booleen...
> c'est la réponse à la question ?

Dan_A
WRInaute discret
WRInaute discret
 
Messages: 183
Inscription: 21 Déc 2005

Message le Mer Sep 12, 2007 13:43

http://fr.php.net/setcookie a écrit:setcookie() définit un cookie qui sera envoyé avec le reste des en-têtes. Comme pour les autres en-têtes, les cookies doivent être envoyés avant tout autre sortie (c'est une restriction du protocole HTTP, pas de PHP). Cela vous impose d'appeler cette fonction avant toute balise <html> ou <head>. Si quelque chose a été envoyé avant l'appel à cette fonction, setcookie() échouera et retournera FALSE. Si setcookie() réussi, elle retournera TRUE. Cela n'indique pas si le client accepte ou pas le cookie.

Tchup
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 23 Avr 2007

Message le Mer Sep 12, 2007 14:40

:oops: je viens de comprendre...

on ne peut pas tester immédiatement après le setcookie() si le client a accepté ou non le cookie car le cookie accepté n'est accessible qu'à la page suivante ou après rechargement de la page...

C'est ça ?

Disons que généralement, un client va au moins sur 2 pages... :roll:

Mais bon, c'est pas top top.
Une autre idée ?

Dan_A
WRInaute discret
WRInaute discret
 
Messages: 183
Inscription: 21 Déc 2005

Message le Mer Sep 12, 2007 14:57

J'aimerais garder son ultra simplicité tout en évitant de comptabiliser les robots

Je ne crois pas que ce soit possible.
Quelques idées là:
http://d1.a.free.fr/robots.php


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Mer Sep 12, 2007 15:05

Tchup a écrit:
jeanluc a écrit:L'idée est bonne.

Merci :)

Dan_A a écrit:Comment sait-on lors de la première visite si les cookies sont acceptés ?
:?: setCookie() renvoie un booleen...
> c'est la réponse à la question ?


Cela ne veut pas dire que le client accepte ou pas le cookie, le booleen est la pour dire si la fonction a buger ou pas a l'emploie. Si il y a du html avant en sortie, ca renvoie 0.

Pour Tchup:

il faut que tu recharges la page pour verifier si le cookie a bien été envoyer. C'est transparant avec des headers

prend -www.phpsources.org
quand tu arrives pour la premiere fois sur ce site (quel que soit la page), tu passes pas un fichier de log qui redirige avec des headers. Dit moi si tu le vois ?

Tchup
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 23 Avr 2007

Message le Jeu Sep 13, 2007 8:21

Salut Dan_A et KOogar,

KOogar > j'ai donc cherché dans cette direction, mais je n'arrive pas faire en sorte que la redirection ne se fasse qu'une seule fois ! Parce que si la redirection (réactualisation de la page) s'exécute si le cookie n'est pas trouvé, alors les robots seront indéfiniment redirigé...
Aurez un script à me montrer STP :?:

Merci d'avance

Dan_A > ça à l'air très complet, mais la gestion d'une pseudo base répertoriant les user_agent m'ennuie quelques peu... :? Je me lancerais dans cette façon de faire si ma première idée ne se conclue pas.

@+ :wink:

Dan_A
WRInaute discret
WRInaute discret
 
Messages: 183
Inscription: 21 Déc 2005

Message le Jeu Sep 13, 2007 20:28

En règle générale, les robots n'acceptent pas d'être redirigés. Si le reste de la page suit la redirection, pas de problème : s'il y a un cookie, c'est que les cookies sont acceptés, sinon et en fonction de l'audience, c'est entre 6 et 9 fois sur 10 un robot.
On peut faire plus complexe, on redirige en ajoutant une variable en bout d'URL, si elle est présente on ne redirige pas (le tout, c'est de ne pas avoir la page avec la variable indexée)...


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Ven Sep 14, 2007 8:40

Tchup a écrit:Salut Dan_A et KOogar,

KOogar > j'ai donc cherché dans cette direction, mais je n'arrive pas faire en sorte que la redirection ne se fasse qu'une seule fois ! Parce que si la redirection (réactualisation de la page) s'exécute si le cookie n'est pas trouvé, alors les robots seront indéfiniment redirigé...
Aurez un script à me montrer STP :?:

Merci d'avance


je me souvient plus trop et tout est ranger dans des classes, mais basiquement le shema ressemble a ca:

tu tests le cookie, si celui n'existe pas tu le creer. Quelque soit le cas tu redirige sur l'uri. Il faut un bon serveur si tu veux que cela reste transparant.

Code: Tout sélectionner
<?php

if(isset($_COOKIE['nom_cookie']))  $cookie = 1;
if($cookie) { header('location: ' . $_SERVER['REQUEST_URI'] . ''); }
else { setcookie('nom_cookie');
       header('location: ' . $_SERVER['REQUEST_URI'] . ''); }

?>


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité