IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Inclure des fonctionnalités au dessus d'un textarea


Sujet :

Langage PHP

  1. #21
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Je reviens vers vous apres une journée complète de tests de ckeditor,

    alors il est très puissant comme éditeur Wysiwyg mais la doc est flou par moment (peut-être a cause de mon anglais dégueulasse, merci google) même si la doc, elle est complète effectivement.

    jreaux62 : J'ai fait une page de test, la voici :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    require_once 'inc/header.php';
    ?>
    
        <h1>Test ckeditor</h1>
    
        <form action="" method="POST">
            <div class="form-group">
                <label for="message">Votre message</label>
                <textarea name="message" class="form-control ckeditor" id="message" rows="6"><?= empty($_POST['message']) ? '' : htmlspecialchars($_POST['message'], ENT_QUOTES); ?></textarea>
                <script>
                    // instance, using default configuration.
                    CKEDITOR.replace( 'message', {
                        language: 'fr'
                    });
                </script>
            </div>
            <button type="submit" class="btn btn-primary">Envoyer</button>
        </form>
    
    <?php
    
    function bbcodes($texte) {
        $texte = str_replace("","<b>", $texte);
        $texte = str_replace("","</b>", $texte);
    
        $texte = str_replace("","<i>", $texte);
        $texte = str_replace("","</i>", $texte);
        return $texte;
    }
    
    if (!empty($_POST)) {
    
        echo "<p>test avec var_dump :</p>";
        var_dump($_POST['message']);
    
        echo "<p>test avec function bbcode + htmlspecialchars</p>";
        echo bbcodes(htmlspecialchars($_POST['message']));
    }
    ?>
    
    <?php require 'inc/footer.php'; ?>

    config de ckeditor : j'ai installé les addons bbcode et entities (car obligatoire avec bbcode selon ckeditor) et.. 2 remarques :
    1/ Comme tu peux le voir je viens de faire une petite function bbcode pour transformer les [] en <> au moment de l'affichage.
    Question : existe t'il pas un addon capable de convertir les bbcode en html.. ? car il existe des centaines de balises html j'ai cherché sur le site mais je comprends pas l'anglais donc j'ai traduit les pages de la doc mais rien..

    2/ donc je reprends : J'ai installé ckeditor standard, + addon bbcode + addon entities (http://ckeditor.com/addon/entities).

    J'ai rajouté la ligne
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    config.extraPlugins = 'bbcode,entities';
    au fichier config.js pour prendre en compte les deux addons.
    Je reviens sur ma page pour tester, les boutons gras, italique, liste a puce etc fonctionnent. Mais d'autres boutons ne fonctionnent pas, ou plutôt, ils ne transmettent pas le bbcode dans le textarea mais visuellement si.. par exemple pour la création d'un tableau basic.. je le vois bien à l'écran au moment d'éditer mais quand je clic sur Source et qu'ensuite je reviens en mode édition la je n'ai plus mon tableau..

    enfin.. une journée complète de tests pour pas grand chose de concluant je trouve. Il est beau comme outil mais pas sécurisé du tout selon moi, pour preuve il suffit de taper un simple :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>alert('faille')</script>
    et la.... message en javascript qui s'affiche (super dans une conversation sur un forum) ! et si je rajoute le bon vieux htmlspecialchars au moment de l'affichage, je n'ai plus la mise en forme ! donc voila !

  2. #22
    Invité
    Invité(e)
    Par défaut
    1/ LA QUESTION N°1 à te poser : "Que dois-je/puis-je AUTORISER comme "MISE EN PAGE HTML" ?"
    Sachant que ta contrainte est : "autoriser TOUT code" dans une BALISE "code".

    A ta place, je ne mettrais que la base (gras, italic,...) facile à convertir en HTML.
    Je zapperais les tableaux

    2/ As-tu testé HTMLPurifier ?
    Mais compte tenu de ta contrainte... il faudrait "purifier" tout, SAUF ce qui se trouve entre balises "code".

    3/ TEST (dans l'éditeur DVP) :
    • (sans balises [CODE][/CODE])

    <script>alert('hello ?');</script>

    • (avec balises [CODE][/CODE])

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>alert('hello ?');</script>
    -> regarde le code source de la page.
    Dernière modification par rawsrc ; 27/06/2016 à 16h32. Motif: Balises [noparse][/noparse] ;-)

  3. #23
    Invité
    Invité(e)

  4. #24
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    J'ai bien regardé le code source de notre conversation surtout la partie ou tu ajoutes la ligne javascript mais je ne trouve pas d'indice sur la marche à suivre..

    sinon pour le htmlpurifier oui j'ai regardé (d'ailleurs je suis dessus encore la) mais je ne comprends rien sur son utilisation je vais faire des recherches de tuto je pense, la doc est en anglais donc j'ai traduits quelques pages.

    C'est incroyable d'avoir tellement d'options et de paramétrages, addons etc pour ckeditor et de ne rien avoir coté "affichage" traitement du textarea !

    1/ LA QUESTION N°1 à te poser : "Que dois-je/puis-je AUTORISER comme "MISE EN PAGE HTML" ?"
    Sachant que ta contrainte est : "autoriser TOUT code" dans une BALISE "code".
    oui voila donc résumé (avec plus de précision) :
    il faut dire en langage informatique au moment de l'affichage :
    - Affiche moi le message en interprétant (pour la mise en forme) tout le code html et UNIQUEMENT le code html SAUF le code html entre les balises code.
    - Ne m’interprète aucun autre langage de programmation dans le message, peu importe si le visiteur tape le code entre les balises code ou pas !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 22
    Dernier message: 27/11/2015, 11h13
  2. Réponses: 0
    Dernier message: 02/04/2014, 16h09
  3. [JAR][DLL][path] inclure des DLLs dans un jar
    Par blaz dans le forum Général Java
    Réponses: 5
    Dernier message: 28/07/2005, 13h29
  4. [jsp] Inclure des pages ASP et ASP.NET
    Par olive.m dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 06/05/2004, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo