WRInaute discret
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. 8)
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. 8)
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:
<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