Fonctionnement
Le plugin LinkCheck parcoure les objets SPIP pour établir la liste des liens qu’ils contiennent. Les liens trouvés sont enregistrés dans une table de la base de données (spip_linkchecks) et sont reliés à l’objet ou aux objets qui le contiennent par le biais de la table spip_linkchecks_liens.
Une fois les liens listés, le plugin les vérifie un par un en interrogeant l’entête HTTP renvoyé par le serveur hébergeant la page.
La vérification répartis les liens en 4 statuts :
- Les morts mort :-( : La page ou le document n’existe plus, c’est la fameuse erreur 404, le lien est à retirer ou à corriger de toute urgence.
- Les liens malades : La fonction de vérification n’arrive pas à obtenir les informations permettant de savoir si le lien est valide, le serveur hébergeant la page est saturé. À vérifier manuellement.
- Les liens déplacés : Ce sont des liens qui mène bien à la page souhaitée mais qui passe par une redirection . On va retrouver dans cette catégorie les URL raccourcis, les liens , Dans certains cas, il est préférable de remplacer ces liens par leur redirection.
- Les liens valides : c’est ceux qu’on préfère, ils fonctionnent, rien à faire.
Le plugin linkcheck vérifie des liens collectés de deux façon :
- Vérification automatique en tâche de fond : Après chaque modifications d’un objet, le plugin enregistre les liens présent dans cet objet, ils seront vérifiés par une tâche de fonds. Si un problème est constaté, le plugin informera le webmestre de la présence d’un lien brisé. Il pourra de cette façon le corriger au plus vite.
- Vérification intégrale : Il est possible à partir de la page principale du plugin de lancer une vérification de tous les liens, Cette opération peut prendre plus ou moins de temps suivant le nombre de liens présents sur votre site.
Mode d’emploi
Une fois le plugin installé, un lien “Vérificateur de liens” est ajouté dans le menu “Maintenance”. En suivant ce lien, vous arrivez sur cette page :
Si c’est votre première utilisation, il sera offert la possibilité de lancer la recherche des liens. Vous n’avez qu’à cliquer sur le bouton “Commencer la recherche”
Une fois la recherche terminé, la page est réactualisée, vous pouvez consulter l’ensemble des liens présents sur votre site. Il ne sont pas encore vérifier.
Vous pouvez laisser les tâches de fonds faire, elles se chargeront de vérifier de l’ensemble des liens au goutte à goutte. Si vous êtes pressés, vous pouvez lancer une vérification complète en cliquant sur le bouton “Commencer la vérification” ou “poursuivre la vérification”. Il ne vous reste plus dans ce cas qu’à contempler de défilement de la barre de progression, elle vous annonce l’état de vos liens.
Paramétrages
Vous pouvez régler à partir de l’écran de configuration du plugin, la façon dont le plugin vous notifie les anomalies.
- Vous pouvez activer ou désactiver la barre d’alerte.
- Vous pouvez activer ou désactiver la notification par email
Export vers un tableur
Pour une gestion externe des liens morts ou déplacés, on peut souhaiter exporter les résultats vers un fichier tableur. Pour cela on peut passer par phpmyadmin. À cette fin, un lien situé en bas de la liste permet d’exporter la sélection : tous les liens et leur diagnostic, ou seulement les morts, ou les déplacés, etc.


Discussions by date of activity
41 discussions
Bonjour,
Suite à la mise à jour du plugin version 3.0.4 de juin 2025 pour un site Spip en 4.4.4 j’ai un message d’erreur en lançant la recherche de lien (après vidage des tables puis en désinstallant et réinstallant complètement le plugin) :
Fatal error: Uncaught Error: Call to undefined function echappe_html()…
Merci de vos conseils
Complément d’information :
plugin 3.0.4 désinstallé, la version 2.1.0 stable installée à la place fonctionne parfaitement.
Bonjour,
Est ce que l’on peut avoir un peu plus d’information sur l’erreur ?
merci
Je dois réinstaller la 3.0.4. et je vous donne le message entier.
Suppression de LinkCheck 2.0.1 et réinstalation de la v3.0.4 sur un Spip 4.4.4 local sous Mamp dernière version 7.2 (2737), Php 8.3.14, serveur Mysql 8.0.40.
Autres plugins actifs : Belles puces 2.0.0, Bootstrap 4 4.7.1, Corbeille 4.1.0, Court-circuit 4.2.0, Facteur 5.2.1, Saisies pour formulaires 5.13.1, SCSS PHP 3.1.0, SPIP Bonux 4.2.0, SPIP reset 3.1.0, SpiPDF 2.2.0.
Lors de la recherche des liens :
Fatal error: Uncaught Error: Call to undefined function echappe_html() in /Applications/MAMP/htdocs/05-Spip/CMS/plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php:307 Stack trace: #0 /Applications/MAMP/htdocs/05-Spip/CMS/plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php(268): linkcheck_nettoyer_texte(’Mamp100’) #1 /Applications/MAMP/htdocs/05-Spip/CMS/plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php(211): inc_linkcheck_recenser_liens_champ_type_texte_dist(’Mamp100’) #2 /Applications/MAMP/htdocs/05-Spip/CMS/plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php(153): linkcheck_recenser_liens(’article’, Array) #3 /Applications/MAMP/htdocs/05-Spip/CMS/plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php(113): linkcheck_objet_recenser_liens(’article’, 2, Array) #4 /Applications/MAMP/htdocs/05-Spip/CMS/plugins/auto/linkcheck/v3.0.4/action/linkcheck_parcours.php(14): linkcheck_parcourir(NULL, 1753263171) #5 /Applications/MAMP/htdocs/05-Spip/CMS/ecrire/public/aiguiller.php(80): action_linkcheck_parcours_dist() #6 /Applications/MAMP/htdocs/05-Spip/CMS/ecrire/index.php(68): traiter_appels_actions() #7 main thrown in /Applications/MAMP/htdocs/05-Spip/CMS/plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php on line 307
Merci
Est ce que ligne 306 vous pouvez rajouter
et me dire si cela corrige le bogue ?
Message disparu après avoir rajouté
include_spip(’inc/texte_mini’); en ligne 306
dans plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php
J’ai vidé les tables avec Réinitialiser
J’ai effectué sans problème la recherche de liens et fait leurs vérifications.
Bravo et merci
Wouarf
[Résolu]
Message disparu après avoir rajouté
include_spip(’inc/texte_mini’); en ligne 306
dans plugins/auto/linkcheck/v3.0.4/inc/linkcheck_parser.php
J’ai vidé les tables avec Réinitialiser,
Effectué une recherche de liens sans problème et fait la vérification de liens.
Bravo et merci
Wouarf
Bonjour,
La version 3.0.5 corrige le problème.
Cordialement
Reply to this message
Bonjour,
Mon site tourne sur SPIP 4.3.6, avec une cinquantaine de plugins activés et tous à jour.
Je suis passé de la version 2.1.0 de LinkCheck à la version 3.0.2, car dans l’ancienne version, le test de vérification des liens (sur la page de gestion du site https://www.regionreunion.com/, par exemple) m’indiquait des liens morts, alors qu’ils étaient valides.
Après le changement de version, la boite de dialogue pour tester les liens n’apparaît plus sur la page de gestion du site. Sur la page des listes de liens, il est néanmoins toujours possible de tester les liens, cependant, je me retrouve avec un état “restreint” sur le site testé en exemple, alors qu’il n’y a visiblement pas d’erreur 401 ou 403 et que les liens (du site et de syndication rss) sont bien valides.
Je ne sais pas comment interpréter ce résultat. Il n’est pas gênant en soi, mais je suppose que ce ne doit pas être le fonctionnement normal attendu du plugin et de cet état particulier. Je vous fais donc un retour d’expérience, car j’ai noté que la version 3.0.2 était en test.
[EDIT] Par ailleurs, après avoir réinitialisé la recherche et la vérification des liens, je me retrouve avec environ 300 liens détectés, là où, auparavant j’en avais plus de 2500.
Reply to this message
Bonjour,
Je rencontre un bug à l’activation. J’ai bien les dépendances en version demandée mais impossible à activer.
SPIP 3.2.16
PHP 5.6.40
Reply to this message
Hello
Plugin indispensable pour éviter d’avoir des liens morts dans ses articles.
Cependant, ce qui serait cool, ce serai d’avoir la possibilité de ne pas prendre en compte
Reply to this message
Bonjour,
Après une maj en 4.15, j’ai un problème avec le plugin ’linkcheck ’qui m’affiche un message d’erreur dans l’espace privé :
C’est plus embétant que cela paraît car je ne peux sauvegarder la base sql (‹ table linkcheck manquante ›) ni utiliser ‹ adminer ›
J’ai désinstallé proprement le plugin linkcheck et supprimé la table correspondante dans mysql (plusieurs fois) mais le message d’erreur persiste.
Merci pour votre aide !
Est-ce que par hasard, tu aurais aussi migré la base de données et qu’elle serait en utf8mb4 ?
Voir dans ce cas : https://discuter.spip.net/t/installation-spip-4-0-7-serveur-ssl-page-blanche/162469/3
Reply to this message
Salut,
j’ai quelques faux positifs parfois (des liens morts ou malades qui ne le sont pas).
Est-il possible de demander de ne pas traiter certains liens ?
Bonne journée !
Ben
Vous pouvez ignorer ma demande, je vois que la question a déjà été posée ;)
(Comme un imbécile, je n’avais pas regardé...)
Si je résume :
Non, il n’y a pas la possibilité ou alors il faudrait la coder s’il y a des motivé-es.
Reply to this message
La version 2.0.3 ne fonctionne pas sous Spip 4.1.
En effet, la fonction
recuperer_entetes()n’est plus supportée, la doc indique qu’elle doit être remplacée parrecuperer_entetes_complets().Il faut donc actualiser le fichier “inc/linkcheck_fcts.php” en ligne 331, en remplaçant :
par
Merci du signalement, la v2.0.4 le corrige.
Reply to this message
Ce plugin fonctionne sur un site SPIP 4 (en changeant la borne) mais avec quelques altérations :
il n’est plus possible de cliquer sur l’objet qui contient le lien (cf capture).
Et visuellement (anecdotiquement) les liens de pagination en bas sont en liste : ul.pagination-items > li
Merci
dd
En complément voici le message d’erreur sur la page
ecrire/?exec=linkchecks&message=check_ok
1 Filtre lien_objet non défini ../plugins/auto/linkcheck/v1.5.3/prive/objets/liste/linkcheck_detail.html _liens 17Merci
Bonjour,
En effet, je constate aussi ce comportement.
Une piste pour le corriger ?
La version 2.0.0 du plugin, marqué compatible spip 4.0.0, corrige ce filtre + le souci de pagination.
Super, merci.
Je teste dès que possible
Reply to this message
Bonjour, je fais remonter une erreur ici...
Problème avec le bouton “Tout enlever” sur la gestion des documents dans un objet
Lorsque j’essaie d’utiliser le bouton “Tout enlever” dans, j’ai un message d’erreur...
Fatal error: Uncaught Error: Call to undefined function objet_info() in .../plugins/auto/linkcheck/linkcheck_pipelines.php:59 Stack trace: #0.../ecrire/inc/utils.php(199): linkcheck_post_edition(Array) #1.../tmp/cache/charger_pipelines.php(1433): minipipe(’linkcheck_post_...’, Array) #2 .../ecrire/inc/utils.php(265): execute_pipeline_post_edition(Array) #3 .../plugins-dist/medias/action/editer_document.php(263): pipeline(’post_edition’, Array) #4 .../plugins-dist/medias/action/dissocier_document.php(102): document_instituer(108959) #5 .../plugins-dist/medias/action/dissocier_document.php(178): supprimer_lien_document(108959, ’evenement’, 7673, false, false) #6 .../medias/action/dissocier_document.php(65): dissocier_document(’I/document’, ’evenement’, 7673, false, false) # in .../plugins/auto/linkcheck/linkcheck_pipelines.php on line 59
Spip 3.2 [24473]
Reply to this message
Merci pour ce plugin indispensable.
- serait-il possible à l’avenir de mettre un petit bouton à coté d’un “lien déplacé” pour “accepter la redirection” et modifier directement la base spip?
- serait-il possible de mettre un bouton pour “ignorer définitivement” les faux-positifs pour les liens morts?
exemples de faux-positifs chez moi: https://borisvs.com ; https://www.sheermedia.co.za/cv ; https://www.xdeep.eu
Si tu te sens de coder ça, n’hésite pas !
je sais programmer des boucles, mais pas ecrire du php ou des instructions sql. Je risque de passer des jours en debug pour des histoires de virgules, ou des exceptions.
En regardant le code du plugin, il faut rajouter une fonction de recherche/remplacer de texte (url) dans des champs textuels. On connait déjà l’url à trouver et celle à remplacer. (peut-etre des histoires d’url_rewriting à vérifier pour les liens internes?).
Pour “ignorer” une url (faux-positifs), créer un nouveau statut “ignorés” et une tache cron associée à fréquence tres petite .
Ergonomiquement, je rajouterai 2 liens dans la colonne Etat, sous “publier ce lien”: “remplacer ce lien” et “ignorer”.
Tels quels, les liens ignorés peuvent être retrouvés en réinitialisant,
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Follow the comments:
|
