[Administration] Liens pour les URL dans les commentaires : détecter ou éviter les liens incorrects
Soumis par Benoît Sibaud (Jabber id, page perso, ) le 08 juillet 2007. Non affecté.http://fr.wikipedia.org/wiki/Variance_(statistiques)
le même entre parenthèses (http://fr.wikipedia.org/wiki/Variance_(statistiques))
le même entre parenthèses avec un espace (http://fr.wikipedia.org/wiki/Variance_(statistiques) )
le même avec détection retrait de la parenthèse à la fin http://fr.wikipedia.org/wiki/Variance_(statistiques )
Autres cas problématiques
(blabla voici l'url http://127.0.0.1).
Ceci est une URL http://127.0.0.1, et là une autre http://127.0.0.1.
Ces caractères étant valides dans l'URL, le remplacement ne peut être exact dans tous les cas.
Code proposé pour une vérification du lien en PHP
(cf https://linuxfr.org/comments/849162.html#849162 ). Faire ces vérifications côté serveur pourrait poser des problèmes de sécurité ou de spam (ie permettre de faire envoyer une requête HTTP au serveur LinuxFr.org).
> Lire l'entrée (8 commentaires, moyenne: 2,3).
accents
même si on laisse les parenthèses, cela ne résoudra pas (évidemment) les problèmes d'espace dans les url.
et comment gérer les accents ? (à mon avis il ne vaut mieux pas..), comme expliqué ici :
http://linuxfr.org/comments/849174.html#849174
cette url ne fonctionne pas :
http://fr.wikipedia.org/wiki/Théorie_des_probabilités
You can't grep dead trees...
[ Répondre ]
-
[^]Re: accents
Posté par Benoît Sibaud (Jabber id, page perso, ) le 08/07/2007 à 14:01. (lien). Évalué à 3.Pour les liens Wikipédia avec accents et espaces, il y avait déjà une entrée dans le suivi. Cf https://linuxfr.org/tracker/621.html
[ Répondre ]
Côté client
Bonjour Benoît,
Je n'avais pas pensé a cela.
Cela devrait être possible côté client, sans trop de difficulté, en utilisant Ajax.
Une fonction Javascript qui ferait la même chose doit être possible.
Si la partie côté serveur peut génerer des constants ID sur les liens, et un morceau de code javascript dynamique, cela devrait faire l'affaire. Un code par exemple :
Code HTML généré côté serveur :
----
<a href="..." id="userLink01" >
<a href="..." id="userLink02" >
<a href="..." id="userLink03" >
...
<a href="..." id="userLink12" >
<script>CheckLinks();</script>
----
Et le code Javascript :
----
function CheckLinks()
{
____var linkNumber = 0 ;
____while ( true )
____{
________linkNumber++ ;
________var linkID = linkNumber < 10 ? 'userLink0'+linkNumber : 'userLink'+linkNumber ;
________var link = document.getElementByID(linkID) ;
________if ( !link ) break ;
________checkThisLink(link) ;
____}
}
function checkThisLink(link)
{
____/* ... */
________switch ( retour )
________{
________case 200 :
____________lien.style.color = 'green' ;
____________break ;
________case 404 :
____________lien.style.textColor = 'red' ;
____________lien.style.fontWeight = 'bold' ;
____________break ;
________}
----
Il me semble être sur la bonne piste ?
[ Répondre ]
-
[^]Re: Côté client
Posté par André Rodier (page perso, ) le 09/07/2007 à 18:10. (lien). Évalué à 2.Dois-je approfondir ?
[ Répondre ]
sécurité & requête HEAD
permettre de faire envoyer une requête HTTP
Je ne suis pas un expert, mais il me semble qu'une requête HEAD est faite pour cela : vérifier qu'une page existe :
fputs($sock, "HEAD $path HTTP/1.0\r\n\r\n") ;
Quelqu'un peut confirmer ou infirmer ?
[ Répondre ]
Proposition
J'ai fait une proposition naïve ici : http://linuxfr.org/comments/849481.html#849481
(pour résumer, la parenthèse fermante y est considérée par défaut, sauf mention contraire comme ne faisant pas partie de l'URL)
J'imagine ne pas être le premier à proposer quelque chose dans ce sens, mais il me semble que cela simplifie grandement les choses pour l'utilisation courante. Il y a sans doute encore des améliorations possibles (la parenthèse fermante pourrait à nouveau être considérée comme faisant partie de l'URL si l'URL contient une parenthèse ouvrante, comme c'est souvent le cas sur Wikipédia).
Maintenant, avoir en plus un système de vérification automatique des liens c'est complémentaire, donc pourquoi pas.
[ Répondre ]
-
[^]Re: Proposition
Posté par baud123 (Jabber id, page perso, ) le 17/07/2007 à 13:12. (lien). Évalué à 2.Les crochets ouvrants et fermants remplacent avantageusement les parenthèses [ ]
Par ailleurs, pour les accents, espaces et autres caractères il y a par exemple la possibilité d'écrire [http://fr.wikipedia.org/wiki/Th%C3%A9orie_des_probabilit%C3%(...)] (et, en cliquant sur le bouton vérifier, la possibilité de s'assurer que le lien s'affiche correctement).[ Répondre ]
-
[^]Re: Proposition
Posté par Aldoo (Jabber id, ) le 20/07/2007 à 20:16. (lien). Évalué à 2.Les crochets sont une solution facile, mais il faut la connaître auparavant, et donc ne peut pas remplacer la reconnaissance automatique (ça ne remplit pas le même rôle, pour résumer !).
En revanche le remplacement des caractères accentués par des %trucmuche n'est pas acceptable du tout ! Quid des copier/coller depuis un endroit où l'URL est écrite dans sa bonne forme ? Quid des URL qu'on écrit à la main ? (par exemple, j'écris souvent de mémoire le préfixe http://fr.wikipedia.org/wiki/ auquel j'ajoute le terme que je veux définir qu'il contienne des accents ou non).
Quid de l'esthétique et de la lisibilité ? C'est moche et illisible un lien rempli de %trucmuches ![ Répondre ]
-


