SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Interactivité, communication > Syndication

Tester les URL des sites référencés

lundi 27 juin 2005, par philippe, silicium. Dernier ajout samedi 10 février 2007


Les adresses de sites web inscrits dans votre annuaire SPIP sont elles valides.


Il y a quelques temps, Mathieu Onfray webmaster du site Japanim.net, a réalisé pour ses propres besoins une page php à rajouter à votre partie privée pour vérifier facilement si les adresses de sites web inscrits à votre annuaire spip sont valides ou non.

L’usage en est fortement recommandé pour éviter les fameux 404 not found qui gâchent la navigation internet.

Le fichier n’a subit qu’un changement de nom de fonction pour devenir compatible avec spip 1.8 : ligne 203 spip_fetch_row() est devenu spip_fetch_array(). [1]

Appelez le test_sites.php3 et placez le dans votre répertoire /ecrire. Ouvrez le ensuite avec votre navigateur. C’est tout.

P.-S.

Mathieu Onfray m’a autorisé à diffuser sous licence GPL son excellent script permettant de tester si les sites web inscrits dans votre annuaire de site spip sont toujours valides.

Notes

[1] Donc pour résumer : vous utilisez SPIP<1.8 c’est " spip_fetch_row() " , vous utilisez SPIP 1.8 ou plus : c’est "spip_fetch_array()"


Répondre à cet article

  • Tester les URL des sites référencés

    15 avril 2007 20:43, par Ghislain

    Bonjour,
    Le fichier test_sites.php3 semble ne plus être valable depuis le passage à spip 1.9. Existe-t-il une version récente de cette contrib ? Est-il compliqué d’adapter le fichier pour spip 1.9.2 ?
    Je cherche de mon côté
    Merci d’avance à qui aurait une solution

    Répondre à ce message

    Retour au début des forums

  • Simple, rapide, facile d’utilisation : bravo !

    Olivier

    Répondre à ce message

    Retour au début des forums

  • Intéressant mais largement tributaire du paramétrage du DNS : dans le cadre de mon intranet, toute adresse hors intranet renvoie un code "Impossible de se connecter".

    La contrib m’a quand même permis de trouver un lien mort. Merci.

    Répondre à ce message

    Retour au début des forums

  • > Tester les URL des sites référencés

    5 juillet 2005 17:17, par Gilles Corlobé

    Le script fonctionne très bien : merci à son auteur.

    Je me permets de proposer une modification destinée à vérifier l’état des liens de redirection des pages. Les pages vers lesquels les articles de SPIP sont redirigés ne sont plus toujours disponibles (c’est exactement le même problème).

    Pour créer ce nouveau script (test_redirection.php3), il suffit de dupliquer test_sites.php3 et de remplacer à la fin du script entre :

    //nbre de sites référencés

    et

    CreerLiens("test_redirection.php3?debut=", $nba, $nbr_entrees) ;

    par ceci :

    $res2 = spip_query("SELECT COUNT(chapo) FROM spip_articles") ;

    $resultat2 = spip_fetch_array($res2) ;

    $nbr_entrees = $resultat2[0] ;

    if (empty($debut)) $debut = 0 ;

    //construction de la requête

    $req = "SELECT * FROM spip_articles" ;

    //utilisé dans une v2 du script...

    //if (! empty($id_rubrique)) $req .= " WHERE id_rubrique=$id_rubrique" ;

    $req .= " ORDER BY id_article LIMIT $debut, $nba" ;

    $res = spip_query($req) ;

    $ligne = 0 ;

    while($resultat = spip_fetch_array($res))

    $pos = strpos($resultat["chapo"], "http://") ;

    if ($pos==1)

    echo "- p>

    echo ">" . $resultat["titre"] . "" ;

    $tab_return = check_connect($resultat["chapo"]) ;

    echo " : " . $tab_return["message"] ;

    echo "
    " ;

    $ligne++ ;

    if ($ligne==0)

    echo "Aucune page redirigée...
    " ;

    J’espère que pour une modification faite en quelques minutes ça fonctionnera aussi bien chez vous que chez moi !

    Répondre à ce message

    Retour au début des forums

  • Je viens de tester le tout ! J’ai eu plusieurs messages "La page a été déplacée momentanément" ou "Page inexistante ! ". Mais, après vérifications, tous ces liens sont pourtant bien valides et fonctionnels. Une idée pourquoi le test n’est pas fidèle ? Je suis sur SPIP 1-8.

    Répondre à ce message

    • Comme tu peux le lire dans le code, ce script analyse la validité des liens par des requêtes hhtp et analyse en retour ce que lui renvoie le serveur.

      Soit :

      // 2** la page a été trouvée
                              case 200 :               
                                                      $message = "OK";
                                                      $color = "#33cc00";
                                                      $connect = 2;
                                                      break;
                              case 204 :       
                                                      $message = "Cette page ne contient rien !";
                                                      $color = "#ff9966";
                                                      break;
                              case 206 :       
                                                      $message = "Contenu partiel de la page !";
                                                      $color = "#ff9966";
                                                      break;
                              // 3** il y a une redirection
                              case 301 :       
                                                      $message = "La page a été déplacée définitivement";
                                                      $message .= seek_redirect_location($en_tete);
                                                      $color = "#ff9966";
                                                      $connect = 1;
                                                      break;
                              case 302 :       
                                                      $message = "La page a été déplacée momentanément";
                                                      $message .= seek_redirect_location($en_tete);
                                                      $color = "#ff9966";
                                                      $connect = 1;
                                                      break;
                              // 4** erreur du coté du client
                              case 400 :       
                                                      $message = "Erreur dans la requête HTTP !";
                                                      $color = "#ff0000";
                                                      break;
                              case 401 :       
                                                      $message = "Authentification requise !";
                                                      $color = "#ff0000";
                                                      break;
                              case 402 :       
                                                      $message = "L'accès à la page est payant !";
                                                      $color = "#ff0000";
                                                      break;
                              case 403 :       
                                                      $message = "Accès à la page refusé !";
                                                      $color = "#ff0000";
                                                      break;
                              case 404 :       
                                                      $message = "Page inexistante !";
                                                      $color = "#ff0000";
                                                      break;
                              // 5** erreur du coté du serveur
                              case 500 :       
                                                      $message = "Erreur interne au serveur !";
                                                      $color = "#ff0000";
                                                      $connect = 1;
                                                      break;
                              case 502 :       
                                                      $message = "Erreur à cause de la passerelle du serveur !";
                                                      $color = "#ff0000";
                                                      break;
                              // cas restant
                              default :       
                                                      $message = "Erreur non traitée dont le numéro est : $no_code!";
                                                      $color = "#000000";
                                                      break;

      Donc, selon le paramétrage du serveur tu peux avoir des messages invalides :-)

      Répondre à ce message

    Retour au début des forums

  • > Tester les URL des sites référencés

    27 juin 2005 23:37, par catherine

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et fonctionnement SPIP-Contrib | SPIP | L'autre.net