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

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.

Notes

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

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.

Discussion

7 discussions

  • bonjour, après avoir syndiqué le fil twitter dans un site spip, je cherche maintenant à afficher les images de spip. Quelle boucle, quelle code quel filtre utiliser ?
    je me sers de ceci :
    https://rssbox.herokuapp.com/twitter/12/jack

    et j’aimerais ajouter les images liés aux posts.

    Répondre à ce message

  • 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

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

    Olivier

    Répondre à ce message

  • 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

  • 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 « -

    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

  • 4

    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.

    • 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 :-)

    • Par exemple : j’ai l’adresse http://www.libroscope.org/Spip-au-scope de référencé. Le site marche très bien mais j’ai le message « Page inexistante ! ». Et c’est comme ça pour tous les messages d’erreurs.

    • S’il y en a plusieurs je pense pour une erreur de réglage du DNS de ton serveur d’hébergement.

      Pour info le même script me donne une url valide pour http://www.libroscope.org/Spip-au-scope sur http://www.allergique.org/

      Désolé je ne vois rien d’autre...

    • Même en local (donc pas sur mon hébergeur) cette adresse me donne, comme plusieurs autres, le même message erroné.

      Je vais renoncer.

      Merci !

    Répondre à ce message

  • catherine

    Nickel


    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom