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 - public/css/accueil.css | 2 +- public/main.js | 8 ++++---- view/courriel.php | 2 +- "\303\240 faire apr\303\250s livraison.txt" | 8 ++------ 7 files changed, 35 insertions(+), 45 deletions(-) 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; diff --git a/public/css/accueil.css b/public/css/accueil.css index 7d75e11..344f601 100644 --- a/public/css/accueil.css +++ b/public/css/accueil.css @@ -274,7 +274,7 @@ footer /* compensation des cibles de liens # superposées au "nav" hors flux */ - :target + .articleSansEditeur:target { padding-top: 70px; margin-top: -70px; diff --git a/public/main.js b/public/main.js index b6021d6..5ca23c7 100644 --- a/public/main.js +++ b/public/main.js @@ -16,11 +16,10 @@ function deconnexionAutomatique() // sauvegarde de la rédaction en cours avec le plugin "autosave" de l'éditeur } -// fonction appelée avec onClick dans un lien, -// si JS est activé, on ne suit le lien qu'avec un "oui" -// si JS est désactivé, le lien fonctionne -function confirmerSuppression() +function confirmerSuppression() // appel 'onCLick' { + // avec JS, on ne suit le lien qu'avec un "oui" + // sans JS, le lien fonctionne var oui = confirm('Confirmer la suppression de cet article.'); if(!oui) { @@ -78,6 +77,7 @@ function copierAdresse() } // cacher le lien #nouvelArticle quand le ckeditor est appelé +// hum pourquoi faire déjà? // function cacherLienArticle() // { // var cible = document.getElementById('nouvelArticle'); diff --git a/view/courriel.php b/view/courriel.php index 3d401fb..7dd7ba4 100644 --- a/view/courriel.php +++ b/view/courriel.php @@ -1,5 +1,5 @@
- +

Envoyez-moi un courriel à:
diff --git "a/\303\240 faire apr\303\250s livraison.txt" "b/\303\240 faire apr\303\250s livraison.txt" index b8de449..faf0131 100644 --- "a/\303\240 faire apr\303\250s livraison.txt" +++ "b/\303\240 faire apr\303\250s livraison.txt" @@ -2,15 +2,11 @@ rassembler les pages presse (fille qui tombe) dans melaine ateliers (cheval) dans archives (blonde) remplacer concerts (sirene) par "écouter" -une page mentions légales (dans fille qui tombe ou cheval) - -liens sans http dans l'éditeur +remplacer liens (fille qui tombe) par "mentions légales" dans installation.php, utiliser la racine dans config.php pour adapter le .htaccess (si c'est possible) -réduire les droits des dossiers - -bouton pour remonter: remplacer le lien par du JS pour ne pas recharger la page +réduire les droits des dossiers? captcha dans password.php? -- cgit v1.2.3