From ec2d263b5c6d619349756e9a8a3d866f2fe46dbd Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 11 Mar 2022 16:51:40 +0100 Subject: regression require htmlawed, lien sans http dans Security, bouton remonter --- controller/Security.php | 30 +++++++++++++++++++++++++++--- controller/ckeditor.php | 29 ----------------------------- controller/media.php | 1 - 3 files changed, 27 insertions(+), 33 deletions(-) (limited to 'controller') diff --git a/controller/Security.php b/controller/Security.php index 15c44b2..ac1149e 100644 --- a/controller/Security.php +++ b/controller/Security.php @@ -1,6 +1,9 @@ et ajouter http:// au début des liens si nécessaire + $pattern = '#()#'; + $remplacement = '$1http://$2$3'; + // le "while" est ici parce que preg_replace s'arrête après avec trouvé et modifié un pattern, pourquoi?? + while(preg_match($pattern, $data)) + { + $data = preg_replace($pattern, $remplacement, $data); + } + + // 2ème problème, en train d'écrire un article, l'utilisateur clique sur ce lien qu'il vient de créer et qui apparaît dans l'infobulle, un nouvelle onglet apparaît + // solution: fermer ce nouvel onglet avec echo ''; + // comment déclencher le JS? en faisant qu'une erreur 404 causée pour cette raison soit particulière? + + return($data); +} \ No newline at end of file diff --git a/controller/ckeditor.php b/controller/ckeditor.php index d6ea8ad..43fd2e2 100644 --- a/controller/ckeditor.php +++ b/controller/ckeditor.php @@ -142,32 +142,3 @@ function submitCKeditor() header('Location: index.php?page=' . $_GET['page']); exit(); } - - -// lien sans http:// -// si une adresse est de type "domaine.fr" sans le http:// devant, le comportement des navigateurs est de rechercher un fichier comme si mon adresse commençait par file:// -// tomber ainsi sur une page d'erreur est parfaitement déroutant -// une erreur 404 est détectée et le visiteur redirigé, mais ça ne règle pas le problème -// 2ème problème, en train d'écrire un article, l'utilisateur clique sur ce lien qu'il vient de créer et qui apparaît dans l'infobulle, un nouvelle onglet apparaît -// solution: fermer ce nouvel onglet avec echo ''; -// le .htaccess doit pour ça détecter que l'erreur 404 est particulière - -function fixLinks($data) -{ - // regex pour détecter les balises , analyser les liens à l'interieur et les modifier si nécessaire - $pattern = '#.*#'; - - if(preg_match($pattern, $data)) - {} - - //$remplacement = 'http://$0'; - //$data = preg_replace($pattern, $remplacement, $data); - - // contrairement à ce qui dit la doc - // https://www.php.net/manual/fr/filter.filters.validate.php - // une adresse du type "domaine.fr" ne passe pas le filtre - // il renvoie false, ce qui nous arrange ici! - //var_dump(filter_var($link, FILTER_VALIDATE_URL)); - - return($data); -} diff --git a/controller/media.php b/controller/media.php index c6682df..27a8bb3 100644 --- a/controller/media.php +++ b/controller/media.php @@ -48,7 +48,6 @@ function mediaSubmit($chaine) // c'est du complètement calqué sur le javascript, avec une syntaxe PHP // et en plus elle est super vieille, elle ne connaît pas les balises HTML5 ! // mais une balise c'est une balise donc ça marche quand même - // la doc de PHP est comme toujours plutôt bonne, elle indique les types de données manipulées // https://www.php.net/manual/fr/book.dom.php $dom = new DOMDocument; -- cgit v1.2.3