petit code pour controle de partenariat
21 messages
• Page 1 sur 2 • 1, 2
Consultez la formation sur les stratégies de liens de WebRankInfo / Ranking Metrics
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
petit code pour controle de partenariat
Slt à tous,
Voilà, j'ai vu ici que certains cherchaient à vérifier si leurs partenaires tenaient leurs promesses dans le temps, à savoir si nos liens étaient tjrs présents sur leur site.
Je vous propose en attendant d'avoir mieux (y' a tjrs mieux) ce script .
Il nécessite (malheureusement pour certains) de pouvoir exécuter php5, mais pas mal d'hébergeurs maintenant le proposent.
Il teste par groupe de 10 url car je me suis rendu compte en le testant que certains sites étaient lent, et on a vite dépassé le temps autorisé pour un script chez certains hébergeurs (à modifier selon votre cas).
Il demande une base de données avec une table de trois champs.
Le champ url est celui qui stocke l'url de la page où est censé être notre lien
Le champ lien est celui qui stocke l'url qu'on a fournie à notre partenaire.
Si vous ne voulez pas de l'id, penser à changer $tab[1] par $tab[0] et $tab[2] par $tab[1].
Si certains d'entre vous désire l'adapter à un fichier texte je ferai un bout de code en plus.
Certains trouverons que je suis un peu lourd, mais j'ai essayé d'être le plus simple et précis possible pour que les tout-débutants s'en sortent.
Faites moi savoir ce que vous en pensez.
A copier et coller dans un fichier d'extension .php5, après avoir créé la table table_url.
Comme champ pour la table: id (numérique et incrémentation), url (varchar 250 -on ne sait jamais-) et lien (varchar).
Placez l'url de vos partenaires dans la table (champ url) et l'url de votre site tel que vous leur avez fourni (champ lien).
Voici le code:
Pour moi ça marche, merci de remonter les bug ou perfectionnements
Voilà, j'ai vu ici que certains cherchaient à vérifier si leurs partenaires tenaient leurs promesses dans le temps, à savoir si nos liens étaient tjrs présents sur leur site.
Je vous propose en attendant d'avoir mieux (y' a tjrs mieux) ce script .
Il nécessite (malheureusement pour certains) de pouvoir exécuter php5, mais pas mal d'hébergeurs maintenant le proposent.
Il teste par groupe de 10 url car je me suis rendu compte en le testant que certains sites étaient lent, et on a vite dépassé le temps autorisé pour un script chez certains hébergeurs (à modifier selon votre cas).
Il demande une base de données avec une table de trois champs.
Le champ url est celui qui stocke l'url de la page où est censé être notre lien
Le champ lien est celui qui stocke l'url qu'on a fournie à notre partenaire.
Si vous ne voulez pas de l'id, penser à changer $tab[1] par $tab[0] et $tab[2] par $tab[1].
Si certains d'entre vous désire l'adapter à un fichier texte je ferai un bout de code en plus.
Certains trouverons que je suis un peu lourd, mais j'ai essayé d'être le plus simple et précis possible pour que les tout-débutants s'en sortent.
Faites moi savoir ce que vous en pensez.
A copier et coller dans un fichier d'extension .php5, après avoir créé la table table_url.
Comme champ pour la table: id (numérique et incrémentation), url (varchar 250 -on ne sait jamais-) et lien (varchar).
Placez l'url de vos partenaires dans la table (champ url) et l'url de votre site tel que vous leur avez fourni (champ lien).
Voici le code:
- Code: Tout sélectionner
<html>
<body>
<?php
// fonction pour se connecter à la base
// il est préférable de mettre cette fonction dans un autre fichier protégé
// et de l'inclure ( include('chemin_du_fichier'); )
function connexion(){
$link = mysql_connect("hote_de_la_base","pseudo_de_la_base","mot_de_passe_de_la_base")or die("connexion hote failed1");
$result = mysql_select_db("nom_de_la_base") or die("connexion base failed");
return $link;
}
// renvoie les urls et les liens stockée dans la base de données table_url
// la table contient 3 champs: id, url (la page du partenaire) et
// lien (celui que vous avez placez chez le partenaire)
function trouve_url($limit){
$result = mysql_query("select * from table_url LIMIT $limit,10")or die("requete trouve_url failed");
return $result;
}
// ouvre une url et teste si le lien est présent
// renvoie 0 si absent, 1 si présent, 2 si présent en nofollow
function test_url($url, $lien){
$trouve = "Absent";
$trouve_nofollow = "";
$doc = @DOMDocument::loadHTMLFile($url);
if(!empty($doc)){
$tags_recherche = $doc->getElementsByTagName("a");
$meta_recherche = $doc->getElementsByTagName("meta");
foreach ($meta_recherche as $meta){// cherche dans les metas la présence de nofollow, ou noindex
$content = $meta->getAttribute("content");
if( eregi( "nofollow", strtolower($content) ) ){$trouve_nofollow = " META nofollow";}
elseif( eregi( "noindex", strtolower($content) ) ){$trouve_nofollow = " META noindex";}
}
foreach ($tags_recherche as $tag){
$r = $tag->getAttribute("href");
if( trim($r) == $lien || trim($r) == $lien."/"){
$trouve = "Présent";
$follow = $tag->getAttribute("rel");
if( strtolower(trim($follow)) == "nofollow"){$trouve = "Présent avec nofollow";}
$onclick = $tag->getAttribute("onclick");
if( $onclick!=""){$trouve = "Présent avec onclick='".$onclick."'";}
break;
}
}
}
else{ $trouve = "erreur ouverture";}
return $trouve." ".$trouve_nofollow;
}
// la recherche se limite à 10 url à partir de $limit
// (pour ne pas dépasser le temps d'exécution du script si un serveur ne répond pas).
// Au premier passage, $limit est fixé à 0 (première url dans la base)
if(!isset($limit)){$limit = 0;}
$l = connexion(); //se connecte à ma base de donnée
$tab_url = trouve_url($limit); // recherche dans la base les urls à scanner
// teste chaque url
while($tab = mysql_fetch_array($tab_url)){
$url = $tab[1];
$lien = $tab[2];
$resultat .= "<a href='$url' target='_blank'>".$url."</a> reponse : ".test_url($url,$lien)."<br>";
}
mysql_close($l); //ferme la connexion
echo $resultat; //renvoie le résultat
// on rajoute 2 boutons pour voir les 10 prochains résultats et les 10 précédants
print "<br /><br />";
$precedent = $limit-10;
$suivant = $limit+10;
if($limit != 0){
print "<form action='' method='post'>
<input type='text' name='limit' value='".$precedent."' />
<input type='submit' value='10 précédants' />
</form>";
}
print "<form action='' method='post'>
<input type='text' name='limit' value='".$suivant."' />
<input type='submit' value='10 suivants' />
</form>";
// et voilà
?>
</body>
</html>
Pour moi ça marche, merci de remonter les bug ou perfectionnements
Dernière édition par DomicilePC le Dim Jan 07, 2007 13:15, édité 2 fois.
- cmda
Test partenariat
C'est un bon début, mais cela ne tiens pas compte des liens en rel="nofollow", des métas contenant nofolow, des pages orphelines, des liens menant à cette page de lien avec un attibut nofollow, les liens de type javascript, etc...
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Slt, et merci
Pour le nofollow dans le lien, j'ai remplacé
par
Ca m'a d'ailleurs permis de constater qu'un de mes chers partenaires s'en était servi
A dégager, j'vous jure...
J'ai également remplacé:
par
ce qui permet d'allez jeter un oeil manuellement, ça peut être pratique
Pour le javascript, tu peux me donner un exemple? Parceque je suppose que tu ne parles pas d'un javascript que tu as donné à un partenaire (ça n'aurait pas bcp d'intérêt).
Merci, j'édite le code de départ
Pour le nofollow dans le lien, j'ai remplacé
- Code: Tout sélectionner
if( trim($r) == $lien || trim($r) == $lien."/"){$trouve = 1;break;}
par
- Code: Tout sélectionner
if( trim($r) == $lien || trim($r) == $lien."/"){
$trouve = 1;
$follow = $tag->getAttribute("rel");
if( strtolower(trim($follow)) == "nofollow"){$trouve = 2;}
break;
}
Ca m'a d'ailleurs permis de constater qu'un de mes chers partenaires s'en était servi
J'ai également remplacé:
- Code: Tout sélectionner
$resultat .= $url." reponse : ".test_url($url,$lien)."<br>";
par
- Code: Tout sélectionner
$resultat .= "<a href='$url' target='_blank'>".$url."</a> reponse : ".test_url($url,$lien)."<br>";
ce qui permet d'allez jeter un oeil manuellement, ça peut être pratique
Pour le javascript, tu peux me donner un exemple? Parceque je suppose que tu ne parles pas d'un javascript que tu as donné à un partenaire (ça n'aurait pas bcp d'intérêt).
Merci, j'édite le code de départ
- cmda
Lien javascript
pas facile à détecter !
l'option href peut contenir l'url correcte mais sur les événement comme onclic il est possible de coder un javascript qui redirige vers une autre page type loader en inhibant le lien dans le href... Note que les liens de ce type sont comptabilisés par google mais ils génèrent souvent une redirection... gare au 302 !
l'option href peut contenir l'url correcte mais sur les événement comme onclic il est possible de coder un javascript qui redirige vers une autre page type loader en inhibant le lien dans le href... Note que les liens de ce type sont comptabilisés par google mais ils génèrent souvent une redirection... gare au 302 !
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Bien, je vais tester la présence de onclick et si il existe l'afficher après la réponse.
Il faudra alors faire une vérification manuelle, pour le moment
Pour les métas, je recherche dans les métas si nofollow existe et la réponse sera 3 .
Je pense que les réponses ne seront plus numériques mais textuelles, c'est plus commode.
Merci
Il faudra alors faire une vérification manuelle, pour le moment
Pour les métas, je recherche dans les métas si nofollow existe et la réponse sera 3 .
Je pense que les réponses ne seront plus numériques mais textuelles, c'est plus commode.
Merci
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Voila donc,
Ce code détecte maintenant:
La présence de nofollow ou noindex dans les métas
La présence ou non de notre lien sur la page du partenaire
La présence de nofollow dans le lien
La présence d'un onclick dans le lien (javascript)
Si il y a eu une erreur à l'ouverture de la page
Pour les pages orphelines, ou les liens pointant vers elle avec nofollow, sur un petit code comme ça c'est pas possible.
Mais je pense que c'est le genre de truc que l'on peut regarder avant de faire son partenariat, il serait surprenant que le "faux partenaire" change la totalité de son site à chaque nouvelle escroquerie de lien (quoi que...)
En espérant que ça servira à quelques uns d'entre vous
Ce code détecte maintenant:
La présence de nofollow ou noindex dans les métas
La présence ou non de notre lien sur la page du partenaire
La présence de nofollow dans le lien
La présence d'un onclick dans le lien (javascript)
Si il y a eu une erreur à l'ouverture de la page
Pour les pages orphelines, ou les liens pointant vers elle avec nofollow, sur un petit code comme ça c'est pas possible.
Mais je pense que c'est le genre de truc que l'on peut regarder avant de faire son partenariat, il serait surprenant que le "faux partenaire" change la totalité de son site à chaque nouvelle escroquerie de lien (quoi que...)
En espérant que ça servira à quelques uns d'entre vous
- cmda
javascript & co
J'ai dit que c'était pas facile car une action javascript n'indique pas nécessairement une redirection douteuse ! Beaucoup d'annuaires utilisent ce type de code pour compter les hits par exemple... et dans ce cas c'est l'url naturelle qui est invoquée : donc bon site !
La solution (assez lourde) consisterait à questionner le lien lui même (dans le cas de la présence d'un code javascript) pour obtenir son code de retour et à l'analyser...
La solution (assez lourde) consisterait à questionner le lien lui même (dans le cas de la présence d'un code javascript) pour obtenir son code de retour et à l'analyser...
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
C'est pour ça que j'ai placé l'url du partenaire dans les résultats.
Si la réponse montre la pésence d'un onclick, la première chose à faire est d'aller voir sur le site du partenaire pour voir de quoi il s'agit, et non de se précipiter sur nos codes pour supprimer le lien du partenaire.
Sur la cinquataine de partenaires que j'ai, 4 n'avez plus de lien vers moi. J'y suis allé, et seulement 2 en fait avez supprimé mon lien, sur les deux autres mon lien avait changé de page, avec PR identique ou supérieur, donc OK.
Si la réponse montre la pésence d'un onclick, la première chose à faire est d'aller voir sur le site du partenaire pour voir de quoi il s'agit, et non de se précipiter sur nos codes pour supprimer le lien du partenaire.
Sur la cinquataine de partenaires que j'ai, 4 n'avez plus de lien vers moi. J'y suis allé, et seulement 2 en fait avez supprimé mon lien, sur les deux autres mon lien avait changé de page, avec PR identique ou supérieur, donc OK.
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Slt
Vous l'avez dans le premier post:
nom de la table table_url
champ id numérique (int) autoincrémentation clé primaire
champ url varchar 250 (on se sait jamais)
champ lien varchar 250 (j'espère que vous n'avez pas d'url aussi longue sur votre site)
Pour la créer, copiez-collez ce code dans un fichier extension .php et exécutez-le
Vous l'avez dans le premier post:
nom de la table table_url
champ id numérique (int) autoincrémentation clé primaire
champ url varchar 250 (on se sait jamais)
champ lien varchar 250 (j'espère que vous n'avez pas d'url aussi longue sur votre site)
Pour la créer, copiez-collez ce code dans un fichier extension .php et exécutez-le
- Code: Tout sélectionner
<?
function connexion(){
$link = mysql_connect("hote_de_la_base","pseudo_de_la_base","mot_de_passe_de_la_base")or die("connexion hote failed1");
$result = mysql_select_db("nom_de_la_base") or die("connexion base failed");
return $link;
}
$l=connexion();
// votre requete de création de la table
$create_table = "CREATE TABLE table_url
( id int auto_increment not null,
url VARCHAR (250) not null,
lien VARCHAR (250) not null,
PRIMARY KEY(id)
)";
$r = mysql_query("$create_table", $l);
if($r){echo "table créée";}
else{echo "Echec de la création de table";}
mysql_close($l);
?>
-

Audiofeeline - WRInaute accro

- Messages: 5257
- Inscription: 20 Oct 2005
...ou avoir des partenaires de confiance... 
- felinderace
- WRInaute discret

- Messages: 52
- Inscription: 24 Avr 2007
Bonjour
Bonjour,
et merci pour votre travail.
ça fait des mois que je cherche un script pouvant me révéler qui ne respecte pas le lien retour sur mes annuaires. existe t'il un truc tout fait ? (je n'ai pas les connaissances pour le faire). Mais j'ai penser à ce bout de code, je peux le mettre avant l'inscription dans l'annuaire ? ... mais es qu'il est possible de rajouter un champ email afin de contacter le webmaster pour qu'il puisse remettre le lien ?
merci en tout cas
et merci pour votre travail.
ça fait des mois que je cherche un script pouvant me révéler qui ne respecte pas le lien retour sur mes annuaires. existe t'il un truc tout fait ? (je n'ai pas les connaissances pour le faire). Mais j'ai penser à ce bout de code, je peux le mettre avant l'inscription dans l'annuaire ? ... mais es qu'il est possible de rajouter un champ email afin de contacter le webmaster pour qu'il puisse remettre le lien ?
merci en tout cas
21 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Netlinking (liens et référencement) : apprenez ce qu'est réellement un bon lien pour le référencement et surtout comment en obtenir. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google Search et AdSense sur MySpace : un accord de 900M$ - 08-08-2006
- Google se cherche un nouveau logo ? - 20-05-2002
- Nouvel outil : calculez la visibilité de votre site - 17-08-2002
- Suite de l'interview avec Google - 24-06-2002
- Accord Microsoft-Yahoo : un partenariat contre Google - 30-07-2009
- Comment être numéro 1 sur Google ? - 25-05-2003
- Le phénomène Google - 22-06-2002
- Les sites les plus visibles pour le mot Google - 27-11-2002
Consultez la description détaillée des produits ou services de Google suivants : Google Code
- Test du code HTTP d'une page
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité



