L'affichage des datas qui sont dans ma DB via TinyMCE

Résolu
AgneauSincere36 Messages postés 12 Statut Membre -  
AgneauSincere36 Messages postés 12 Statut Membre -

Bonjour les génies, je renconte un sérieux problème avec l'affichage des informations qui sont dans ma DB où je les ai sauvés via un formulaire Tinymce.

Voici ce que Tinymce enregistre dans ma BDD:

<p style="text-align: center;"><em><span style="text-decoration: underline;"><strong>test</strong></span></em></p>

Alors que, j'aimerais conservé la mise en forme dans mon site comme dans Mon formulaire sous TinyMCE.

Donc sur mon site les balise comme tel:

test

Comment faire pour que Tinymce place les balise html sans qu’elle s’affiche sur mon site ?

(J’avoueque j’ai un peu chercher dans la conf de Tinymce mais je n’ai rien trouver.)

J’éspère m’être bien exprimé et que ce n’est pas trop floue pour vous aussi.

Merci.

5 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     

    ça devrait donner un truc du genre

    Fichier de connexion à la bdd à utiliser dans tous tes autres fichiers !

    <?php
    //Fichier de connexion à la bdd pour éviter d'avoir à la réécrire dans tous tes scripts
    
    //Démarrage session (versions of PHP >= 5.4.0 , PHP 7, PHP 8)
    if (session_status() === PHP_SESSION_NONE) {
        session_start();
    }
    
    $conn= new mysqli('localhost','root','','media')
    //on vérifie qu'il n'y pas de soucis à la connexion à la bdd
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      exit();
    }
    
    ?>
    
    
    

    Fichier d'upload

    
    <?php
    //PAGE D’EXEXUTION Upload.php
    
    // On inclus le fichier de connexion à la bdd
    require_once 'cnxbdd.php';
    
    if(!isset($_SESSION['unique_id'])){
       header("location: index.php");
    }
    
    
    // Vérifier si le formulaire est soumis
    
    
    if($texte){
    	//Utilisation des requêtes préparées pour éviter les failles de sécurités
    	// Doc : https://www.w3schools.com/php/php_mysql_prepared_statements.asp
    	$stmt = mysqli_prepare($conn, "INSERT INTO menu (name) VALUES (?)");
    	mysqli_stmt_bind_param($stmt, 's', $texte);
    	$texte = !empty($_POST['texte']) ? trim($_POST['texte']) : null;
    
    		
    	if(!mysqli_stmt_execute($stmt)){
    		echo("Error description: " . mysqli_error($conn));
    	}else{
    		echo "Insertion OK";
    	}		
    } else {
    	echo "Aucune données à insérer en base !!! ";
    }
    
    
    
    
    
    ?>

    Fichier de formulaire

    
    <?php
    //PAGE D’AFFICHAGE ET LE FORMULAIRE
    
    // On inclus le fichier de connexion à la bdd
    require_once 'cnxbdd.php';
    ?>
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>Acceuil</title>
    	</head>
    	<body>
    
    		<form action="upload.php" method="post">
    			<label for="texte">Entrez votre texte :</label><br>
    			<textarea id="texte" name="texte" rows="10" cols="50"></textarea><br>
    			<input type="submit" value="Envoyer">
    		</form>
    
    		<?php 
    			//AFFICHAGE SANS TABLE
    			$rq=mysqli_query($conn,"select * from menu where name <> 'NULL' order by id desc limit 1 ");
    			// ECHO LES DATAS;
    			while ($row = mysqli_fetch_assoc($rq)){
    				echo "<br>" . $row['name'];
    			}
    		?>
    
    		<script src="tinymce/tinymce.min.js"></script>
    		<script src="script.js"></script>
    	</body>
    </html>
    

    2
    1. AgneauSincere36 Messages postés 12 Statut Membre
       

      Allahou Akbar! Merci infiniment coach, jusqu'au point ou je manque le mot.

      Gloire et louange à Celui qui a enseigné à l'homme ce qu'il ne savait pas.

      0
  2. AgneauSincere36 Messages postés 12 Statut Membre
     

    Il sied de signaler que, ses codes sources ????<p style="text-align: center;"><em><span style="text-decoration: underline;"><strong>test</strong></span></em></p>

    Sont enregistrés avec les textes saisis via mon formulaire TinyMCE, dans un terme simple, les textes s'enregistrent et s'affichent dans le navigateur avec les codes sources de la mise forme comme dans un éditeur de texte.

    0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     

    Bonjour,

    Ce que tu montres semble tout à fait normal.

    Les données s'enregistrent correctement dans ta bdd...

    Le souci, se situe donc au niveau de leur utilisation sur ton site...

    Comment fais tu ? avec quel code ?

    0
    1. AgneauSincere36 Messages postés 12 Statut Membre
       

      Je le faisais avec echo"$texte"; simplement et après une recherche j'ai trouvé ça ????

      <?php

      // Exemple de texte envoyé par TinyMCE (ou autre éditeur de texte)

      texte = "<h1>Bienvenue</h1><p>Ceci est un <b>exemple</b> de texte avec des balises HTML autorisées.</p>";

      // Liste des balises HTML autorisées allowed_tags = '<h1><h2><h3><h4><h5><b><i><u><strong><em><mark><p><br><span><blockquote><hr><pre><ul><ol><li><dl><dt><dd><table><tr><td><th><a><img>';

      // Application strip_tags() pour show seulement les balises autorisées

      texte_securise = strip_tags($texte, allowed_tags);

      Mais, je n'arrive pas à l'appliquer, pour conserver la mise en forme comme dans l'aperçu de mon formulaire TinyMCE.

      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > AgneauSincere36 Messages postés 12 Statut Membre
         

        il ne faut pas utiliser de fonction comme strip_tags ni htmlspecialchars ou autre truc du genre.

        tu dois echo le contenu de ta variable tel quel 

        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         

        mais il faudrait le code exact  de la page où tu veux l'afficher... y compris le code qui te Sert à récupérer les données de ta bdd...

        0
      3. AgneauSincere36 Messages postés 12 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         

            // Utiliser strip_tags() pour filtrer les balises HTML non autoriséestexte_securise = 

            strip_tags($texte);

         mysqli_query($conn,"insert into menu(name)values('$texte')");

            // Exécution de la requête

            if ($conn='$texte') {

              echo "Le texte a été ajouté avec succès à la base de données.";

           } else {

              echo "Une erreur est survenue lors de l'ajout du texte.";

          }

        ?>

        0
  4. AgneauSincere36 Messages postés 12 Statut Membre
     

    PAGE D’AFFICHAGE ET LE FORMULAIRE


    <!DOCTYPE html>
    <html>
    <head>
           <meta charset="utf-8">
        <title>Acceuil</title>
    </head>
    <body>

    <form action="upload.php" method="post">
        <label for="texte">Entrez votre texte :</label><br>
        <textarea id="texte" name="texte" rows="10" cols="50"></textarea><br>
        <input type="submit" value="Envoyer">
    </form>

    <?php 

    $conn= new mysqli('localhost','root','','media')or die("Could not connect to mysql".mysqli_error($conn));

    //AFFICHAGE SANS TABLE
    $rq=mysqli_query($conn,"select * from menu where name <> 'NULL' order by id desc limit 1 ");
    // ECHO LES DATAS;
    while ($row = mysqli_fetch_assoc($rq)){
    $texte=$row['name'];
    ?>
    <br>
    <?php

    echo "$texte";
    }

    ?>

    <script src="tinymce/tinymce.min.js"></script>
    <script src="script.js"></script>
    </body>
    </html>

    PAGE D’EXEXUTION Upload.php

    <?php

      session_start();

    if(!isset($_SESSION['unique_id'])){

        header("location: index.php");

      }

    $conn= new mysqli('localhost','root','','media')or die("Could not connect to mysql".mysqli_error($conn));

    // Vérifier si le formulaire est soumis

    $texte=addslashes($_POST['texte']);

    $texte=htmlspecialchars($texte);

    // Liste des balises HTML autorisées

       // allowed_tags = '<h1><h2><h3><h4><h5><b><i><u><strong><em><mark><p><br><span><blockquote><hr><pre><ul><ol><li><dl><dt><dd><table><tr><td><th><a><img>';

        // Utiliser strip_tags() pour filtrer les balises HTML non autoriséestexte_securise = 

        strip_tags($texte);

     mysqli_query($conn,"insert into menu(name)values('$texte')");

        // Exécution de la requête

        if ($conn='$texte') {

          echo "Le texte a été ajouté avec succès à la base de données.";

       } else {

          echo "Une erreur est survenue lors de l'ajout du texte.";

      }

    ?>

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     

    ouais... donc tu n'as pas lu ma réponse précédente visiblement...

    tu as deux lignes en trop dans ton code d'upload

    $texte=addslashes($_POST['texte']);
    
    $texte=htmlspecialchars($texte);

    tu dois enregistrer le contenu tel quel dans la base de données sans aucun traitement.. et j'insiste sur le mot aucun..


    0
    1. AgneauSincere36 Messages postés 12 Statut Membre
       

      J'ai les zones d'ombres coach, si vous aimeriez m'expliquer via me codes sources. Ou à m'envoyant l'essentiel du code. Veuillez agréer svp coach 

      0