|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
alainp WRInaute discret

Inscrit le: 13 Juin 2003 Messages: 99
|
Posté le : Dim Nov 30, 2003 14:01 Sujet du message: Classement Google |
|
|
J'utilise un script me permettant de connaître la provenance des visiteurs de mon site et notamment ceux qui sont passés par Google, avec le mot clé qui les a amené.
Qui connaît un script permettant de récupérer la position ou la page Google où se trouvait ce mot clé
Quand on fait une recherche sur Google, il affiche la page de départ mais je suis trop nul en php pour récupérer cette information
exemple :
http://www.google.fr/search?q=voyage&hl=fr&lr=&cr=countryFR&ie=UTF-8&oe=UTF-8&st...
start=10 donc sur la 2ème page
merci par avance |
|
| |
|
 |
George Abitbol WRInaute accro

Inscrit le: 06 Juin 2003 Messages: 1922
|
Posté le : Dim Nov 30, 2003 14:31 Sujet du message: Classement Google |
|
|
Salut
Pour savoir d'où vient le visiteur, il faut utiliser $_SERVER['HTTP_REFERER'] (ou bien $HTTP_GET_VARS['HTTP_REFERER'] si tu as un PHP antérieur à la version 4.1.0)
Ca te donnera l'url complète avec donc également la chaîne de requête (ce qui se trouve après le ?)
Il n'y a plus qu'à faire un traitement sur cette chaîne pour récupérer les différentes variables. Il y a plusieurs moyens de faire ça, par exemple avec la fonction explode() ou avec des expressions régulières.
Fred |
|
| |
|
 |
alainp WRInaute discret

Inscrit le: 13 Juin 2003 Messages: 99
|
Posté le : Dim Nov 30, 2003 20:03 Sujet du message: Classement Google |
|
|
| George Abitbol a écrit: |
Salut
Pour savoir d'où vient le visiteur, il faut utiliser $_SERVER['HTTP_REFERER'] (ou bien $HTTP_GET_VARS['HTTP_REFERER'] si tu as un PHP antérieur à la version 4.1.0)
Ca te donnera l'url complète avec donc également la chaîne de requête (ce qui se trouve après le ?)
Il n'y a plus qu'à faire un traitement sur cette chaîne pour récupérer les différentes variables. Il y a plusieurs moyens de faire ça, par exemple avec la fonction explode() ou avec des expressions régulières.
Fred |
Merci pout ta précision
Pas de problème pour récupérer l'adresse d'où provient mon visiteur
Par contre et comme je ne suis pas très doué en PHP je cherche comment récupérer le chiffre se trouvant, pour google, après &start=
merci |
|
| |
|
 |
WebRankInfo Administrateur du site

Inscrit le: 19 Avr 2002 Messages: 14193 Localisation: Toulouse
|
|
| |
|
 |
George Abitbol WRInaute accro

Inscrit le: 06 Juin 2003 Messages: 1922
|
Posté le : Dim Nov 30, 2003 20:52 Sujet du message: Classement Google |
|
|
Alors, d'abord, pour récupérer le QUERY_STRING, tu peux effectivement utiliser parse_url() :
| Code: |
| $parse = parse_url($_SERVER['HTTP_REFERER']); |
Ceci te renvoie un tableau contenant diverses informations sur l'url (le domaine, le chemin, etc.). L'information qui nous intéresse, c'est query, la chaine de requête :
| Code: |
| $query = $parse['query']; // $query contient alors tout ce qui suit le point d'interrogation |
Maintenant que l'on a récupéré la query, il faut la diviser suivant les & (séparateur de paramètres), puis diviser chaque nouvelle sous-chaine obtenue suivant les =, afin de séparer le paramètre et sa valeur. C'est là qu'intervient explode() :
| Code: |
$params = explode('&', $query); // on divise la chaine selon les &
foreach ($params as $var) {
$temp = explode('=', $var); // on divise la chaine selon les =
$variable[$temp[0]] = $temp[1];
} |
Ce code va construire un tableau associatif, faisant correspondre à chaque paramètre sa valeur.
Par exemple, après ce traitement, un echo $variable['start'] affiche la valeur du paramètre start de l'url... Enfin, à condition qu'il existe.
Attention, car il n'y a pas que le start qui compte, il faut aussi compter avec le paramètre num (le nombre de résultats sur chaque page).
Donc par exemple, si start = 40 et que num = 20, ça veut dire que le site est compris entre la 41ème et la 60ème position.
Fred |
|
| |
|
 |
WebRankInfo Administrateur du site

Inscrit le: 19 Avr 2002 Messages: 14193 Localisation: Toulouse
|
Posté le : Dim Nov 30, 2003 21:08 Sujet du message: Classement Google |
|
|
| par contre malheureusement je ne vois aucun moyen de récupérer le rang dans la page |
|
| |
|
 |
perti WRInaute impliqué

Inscrit le: 22 Oct 2003 Messages: 336
|
Posté le : Lun Déc 01, 2003 0:41 Sujet du message: Classement Google |
|
|
| WebRankInfo a écrit: |
| par contre malheureusement je ne vois aucun moyen de récupérer le rang dans la page |
Logiquement c'est impossible puisque cette information n'est même pas existante sur l'url de la page de résultat de GG. |
|
| |
|
 |
Davios WRInaute occasionnel

Inscrit le: 01 Sep 2003 Messages: 119 Localisation: Paris
|
Posté le : Lun Déc 01, 2003 10:57 Sujet du message: Classement Google |
|
|
| perti a écrit: |
| Logiquement c'est impossible puisque cette information n'est même pas existante sur l'url de la page de résultat de GG. |
Ca n'est pas vraiment impossible, suffit de parser la page ... mais c vrai que ca serait beaucoup de boulot pour finalement pas gd chose. Si tu as le referer, c deja cool, tu peux chopper la page de resultat et faire un lien dessus pour voir tranquillement si tu as amélioré ton positionnement  |
|
| |
|
 |
alainp WRInaute discret

Inscrit le: 13 Juin 2003 Messages: 99
|
Posté le : Mar Déc 02, 2003 22:01 Sujet du message: Classement par google |
|
|
| WebRankInfo a écrit: |
| par contre malheureusement je ne vois aucun moyen de récupérer le rang dans la page |
Merci à tous pour vos conseils
Pour l'instant, je ne souhaite simplementsavoir si je suis sur la 1ère page ou la 23 ème en fonction des mots clés qui m'ont apporté les visiteurs
Avant de me lancer dans la procédure de George, j'ai essayé une autre méthode
$moteur=substr($row[referer],11,6); // $row[referer] est la variable de l'url
if ($moteur="google")
{
$mot1="&start";
$mot2="&sa=";
$pos1=strpos($row[referer],$mot1);
$pos2=strpos($row[referer],$mot2);
if ($pos2-$pos1 > 0)
{
$page=substr($row[referer],$pos1+7,$pos2-$pos1-7)/10;}
else
{
$page="1";}
}
if ($moteur == "google")
{
$page=" ";}
echo "<td valign=top BGCOLOR=\"$color\">".$page."</TD>"; // affichage de la page
Celà fonctionne bien si je ne mets pas la dernière condition qui finit par m'afficher un espace pour tout alors que je ne veux cet espace que pour les non google
Qui peut m'aider à corriger
merci |
|
| |
|
 |
George Abitbol WRInaute accro

Inscrit le: 06 Juin 2003 Messages: 1922
|
Posté le : Mar Déc 02, 2003 22:18 Sujet du message: Classement Google |
|
|
C'est ton premier if qui pose problème. Lorsque tu fais if ($moteur = "google") tu ne fais pas une comparaison, tu fais une affectation. Et non seulement ton if sera toujours considéré comme true mais en plus $moteur vaudra "google", après ça.
Remplace donc ce if par if ($moteur=="google")
Fred |
|
| |
|
 |
alainp WRInaute discret

Inscrit le: 13 Juin 2003 Messages: 99
|
Posté le : Mar Déc 02, 2003 22:36 Sujet du message: Classement google |
|
|
| George Abitbol a écrit: |
C'est ton premier if qui pose problème. Lorsque tu fais if ($moteur = "google") tu ne fais pas une comparaison, tu fais une affectation. Et non seulement ton if sera toujours considéré comme true mais en plus $moteur vaudra "google", après ça.
Remplace donc ce if par if ($moteur=="google")
Fred |
Merci mais çà ne va pas non plus, j'ai les même problèmes avec la dernière condition qui écrase les 2 précédentes
1ère condition : si c'est google et que le mot start est trouvé, on calcule le N° de page
2ème condition : si c'est google et qu'il n'y a pas le mot start, c'est qu'on est en page 1
3ème condition : ce n'est pas google et je ne veux rien ou un espace
merci |
|
| |
|
 |
kilik WRInaute occasionnel

Inscrit le: 04 Oct 2003 Messages: 149 Localisation: Bordeaux
|
Posté le : Mar Déc 02, 2003 22:41 Sujet du message: Classement Google |
|
|
if ($moteur != "google")
{
$page=" ";}
!= pour différent
== pour égal
je crois que c'est ca le probleme |
|
| |
|
 |
alainp WRInaute discret

Inscrit le: 13 Juin 2003 Messages: 99
|
Posté le : Mar Déc 02, 2003 22:56 Sujet du message: Classement google |
|
|
| kilik a écrit: |
if ($moteur != "google")
{
$page=" ";}
!= pour différent
== pour égal
je crois que c'est ca le probleme |
Super !!! çà marche, j'arrive à voir si je suis en 1ère page sans avoir à cliquer sur le lien.
Merci Kilik
J'avais prévenu, je ne suis pas une bête en php et je croyais que = égal et == différent
encore merci |
|
| |
|
 |
kilik WRInaute occasionnel

Inscrit le: 04 Oct 2003 Messages: 149 Localisation: Bordeaux
|
Posté le : Mar Déc 02, 2003 23:24 Sujet du message: Classement Google |
|
|
de nada, je suis moi meme passé par beaucoup de difficulté dans le php, etant vraiment un novice en programmation (j'ai pas fait d'etude dans ce domaine)
m'enfin , ca fait plaisir de rendre service (quand je peux :p)
bon courage pour la suite |
|
| |
|
 |
| |
|
|